我写了一个shell扩展(在explorer的文件上下文菜单中的项目),并使用WiX的heat
从DLL创建一个MSI。
问题:安装MSI不会显示上下文菜单项
相反,运行Regasm.exe my.dll /codebase
会使项目显示。
heat
将注册表项写入HKEY_CLASSES_ROOT\
,而
Regasm
将注册表项写入HKEY_LOCAL_MACHINE\SOFTWARE\Classes\
。
我可以修改heat
生成的WXS以写入与Regasm
相同的注册表路径,但MSDN suggests HKEY_CLASSES_ROOT和apparently某些用户无法写入HKEY_LOCAL_MACHINE ...有更好的解决方案吗?
答案 0 :(得分:2)
HKCR
是HKLM\SOFTWARE\Classes\
的别名。确保预机器包的最简单方法是在InstallScope
元素上设置Package
:
<Wix>
<Product ...>
<Package InstallScope='perMachine' />