Com 在WiX中使用.reg文件注册DLL 问题的背景
我目前正在尝试整合一种发布新项目的方法,我正在处理这个项目,它要求在用户系统上注册一个COM公开的.NET DLL。由于我是WiX的新手,因此我尝试让事情尽可能简单 问题 my DLL注册的一个大问题是regasm将InProcServer32键的默认值设置为“mscoree.DLL”,但my DLL似乎只能在使用其完整路径时实例化,例如“C:\Windows\SysWow64\mscoree.DLL” 目前,我在安装项目中有一个自定义操作(我想放弃使用WiX),该操作将调用SearchPath API来查找mscoree.dll的完整路径,并用完整路径覆盖默认值,这样dll就可以在没有任何问题的情况下实例化 拟议的解决方案/问题 由于我是WiX新手,我想到了准备一个.reg文件,该文件将包含进入CLSID树的所有必要信息,然后让WiX以某种方式执行该文件 我的问题是:Com 在WiX中使用.reg文件注册DLL 问题的背景,com,wix,registry,regasm,Com,Wix,Registry,Regasm,我目前正在尝试整合一种发布新项目的方法,我正在处理这个项目,它要求在用户系统上注册一个COM公开的.NET DLL。由于我是WiX的新手,因此我尝试让事情尽可能简单 问题 my DLL注册的一个大问题是regasm将InProcServer32键的默认值设置为“mscoree.DLL”,但my DLL似乎只能在使用其完整路径时实例化,例如“C:\Windows\SysWow64\mscoree.DLL” 目前,我在安装项目中有一个自定义操作(我想放弃使用WiX),该操作将调用SearchPath
看看名为“热”的WiX程序。这可以“获取”DLL,包括与RegAsm/COMVisible部件相关的注册表信息。然后,您可以剪切此代码并将其应用到wxs文件中 您还可以使用Regasm/regfile,然后手动将该信息转换为RegistryValue元素 关于路径问题,请使用
如果将安装标记为32位(x86),则在64位操作系统上运行时,将自动解析为SysWow64文件夹,在32位操作系统上运行时,将自动解析为System32文件夹。请查看名为“Heat”的WiX程序。这可以“获取”DLL,包括与RegAsm/COMVisible部件相关的注册表信息。然后,您可以剪切此代码并将其应用到wxs文件中 您还可以使用Regasm/regfile,然后手动将该信息转换为RegistryValue元素 关于路径问题,请使用
如果您将安装标记为32位(x86),则在64位操作系统上运行时会自动解析为SysWow64文件夹,在32位操作系统上运行时会自动解析为System32文件夹。Erm是否阻止部署到32位系统?@TonyHopkinson否,我将编写32位和64位的安装程序,以确保使用正确的系统目录,我刚才用了64位路径作为例子。你是在阻止部署到32位系统吗?@TonyHopkinson不,我将编写一个32位和64位的安装程序,以确保使用正确的系统目录,我只是用64位路径作为例子我们再次见面Christopher!我刚刚查看了Heat参考页(),我说的“收获”会找出在用户系统上设置DLL所需的内容,并创建一个文件,将所需内容添加到安装中,对吗?例如依赖关系、注册表项等。?[SystemFolder]属性是否会在Heat程序生成的输出文件中使用?是。获取DLL后,WxS应该关闭,但可能需要进行一些处理,以便将代码段集成到安装中。在您理解为什么需要调整之前,很难解释要调整什么。关键是heat generates wxs这是一个很好的起点,但它不是一个自动工具。尝试了一下,并设法使其像这样工作:)花了好几个小时才弄清楚如何引用heat generated文件,但最终达到了目的!对于其他可能会这样做的人-我在组件周围添加了一个ComponentGroup,然后在WiX项目主文件的Feature元素中使用了ComponentGroupRef。我们再次见面Christopher!我刚刚查看了Heat参考页(),我说的“收获”会找出在用户系统上设置DLL所需的内容,并创建一个文件,将所需内容添加到安装中,对吗?例如依赖关系、注册表项等。?[SystemFolder]属性是否会在Heat程序生成的输出文件中使用?是。获取DLL后,WxS应该关闭,但可能需要进行一些处理,以便将代码段集成到安装中。在您理解为什么需要调整之前,很难解释要调整什么。关键是heat generates wxs这是一个很好的起点,但它不是一个自动工具。尝试了一下,并设法使其像这样工作:)花了好几个小时才弄清楚如何引用heat generated文件,但最终达到了目的!对于其他可能会这样做的人-我在组件周围添加了一个ComponentGroup,然后在WiX项目主文件的Feature元素中使用了ComponentGroupRef。
[SystemFolder]mscoree.dll