问题的背景
我目前正在尝试整理一种分发我正在处理的新项目的方法,该项目要求在用户的系统上注册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执行它。
我的问题是:
发布于 2012-05-23 02:02:40
请看一看名为“热”的WiX程序。这可以“获取”DLL,包括与RegAsm / COMVisible部件相关的注册表信息。然后,您可以剪短这段代码并将其工作到您的wxs文件中。
您还可以使用/regfile,然后手动将该信息转换为RegistryValue元素。
关于路径问题,请使用SystemFolder性质。
[SystemFolder]mscoree.dll
如果您将安装标记为32位(x86),这将自动解析为在64位操作系统上运行时的SysWow64文件夹和在32位操作系统上运行的System32文件夹。
https://stackoverflow.com/questions/10710198
复制相似问题