无法使用 WIX 安装程序注册 dll

Posted

技术标签:

【中文标题】无法使用 WIX 安装程序注册 dll【英文标题】:Not able to register dll using WIX installer 【发布时间】:2013-03-11 16:57:41 【问题描述】:

我有我的上下文菜单外壳扩展 dll。我使用 Heat.exe 为我的 dll 创建组件,并在安装时完全正常。 但我无法使用 wix 安装程序注册我的 dll。 我尝试了各种选择,但没有任何效果。

如果我尝试使用 regasm.exe /codebase Myfile.dll 进行手动注册,它会起作用。

【问题讨论】:

【参考方案1】:

Regasm /regfile(因此 heat 或 InstallShield )具有不写出用户注册数据的已知行为。在这种情况下,您需要在 VM 上安装软件并使用工具在运行 regasm 之前和之后捕获注册表。然后执行差异报告以查看更改的内容。将其写入您的 WXS。

最后重置虚拟机并运行新安装并验证它是否正常工作。

【讨论】:

在 wix 文件中,所有注册表元素都匹配,但是当我拍摄快照时,它添加到 HKLM\SOFTWARE\Classes\Wow6432Node\CLSID\myval 而不是 HKLM\SOFTWARE\Classes\CLSID\myval跨度> 考虑到 Wow6432Node 只是 64 位机器上的 32 位注册表视图,在功能上可能是相同的。

以上是关于无法使用 WIX 安装程序注册 dll的主要内容,如果未能解决你的问题,请参考以下文章

Wix 安装程序不会覆盖以前版本的可执行文件

WiX 安装 SQLServerSpatial.dll 和 SQL Server 2008 R2?

如何使用 WiX 安装程序注册文件类型/扩展名?

WiX 3.8:使用相同注册表值的两个MSI。如果同时卸载两个MSI,如何删除注册表值?

在 wix 安装期间搜索注册表更改

(WiX) 将产品信息写入注册表以用于双重用途安装程序