问题的背景
我目前正在尝试整合一种分发我正在处理的新项目的方法,该项目需要在用户系统上注册一个 COM 公开的 .NET DLL,因为我是 WiX 的新手并正在迁移到它为此,我试图让事情尽可能简单。
问题
我的 DLL 注册的最大问题是 regasm 将 InProcServer32 键的默认值设置为“mscoree.dll”,但我的 DLL 似乎只能在使用它的完整路径时被实例化,例如“C:\Windows\ SysWow64\mscoree.dll"
目前我在我的安装项目中有一个自定义操作(我想放弃使用 WiX),它将调用 SearchPath API 来查找 mscoree.dll 的完整路径并用完整路径覆盖默认值,以便 DLL 可以实例化没有任何问题。
建议的解决方案/问题
由于我是 WiX 的新手,所以我有准备一个 .reg 文件的想法,该文件将包含进入 CLSID 树的所有必要信息,然后让 WiX 以某种方式执行该文件。
我的问题是:
- 以这种方式注册 DLL 是否存在任何固有缺陷?
- 由于我试图在这里找到解决方法的主要原因是 mscoree.dll 问题,在 WiX 中是否有任何本地方法可以做到这一点?