2

我编写了一个 shell 扩展(资源管理器的文件上下文菜单中的项目),并使用 WiXheat从 DLL 创建一个 MSI。

问题:安装 MSI 不会显示上下文菜单项。
相反,运行Regasm.exe my.dll /codebase使项目出现。

heat将注册表项写入HKEY_CLASSES_ROOT\,同时
Regasm将注册表项写入HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.

我可以修改生成的heatWXS 以写入与 相同的注册表路径Regasm,但MSDN 建议 HKEY_CLASSES_ROOT并且显然有些用户无法写入 HKEY_LOCAL_MACHINE ...有更好的解决方案吗?

4

1 回答 1

2

HKCRHKLM\SOFTWARE\Classes\是您的 MSI 包是每台机器时的别名。确保机器前封装的最简单方法是设置InstallScopeonPackage元素:

<Wix>
  <Product ...>
     <Package InstallScope='perMachine' />
于 2013-05-22T16:49:38.397 回答