wix:perUser安装程序的ICE57和ICE91警告

Wim*_*nen 11 windows-installer wix

我正在使用wix 3.5来创建具有"perUser"安装范围的Windows安装程序.该WXS文件是在这里,产生的MSI文件是在这里.

我从light.exe链接器收到以下奇怪的警告.我不确定我是否应该压制它们,或者是否有更好的方法来解决这个问题.

ICE57

D:\ hg\downmarker\setup\product.wxs(34):警告LGHT1076:ICE57:组件'component.downmarker.exe'具有HKCU Registry KeyPath的每用户和每机器数据.

这个警告对我来说没有意义,因为安装程序在没有管理访问权限的情况下工作正常--AFAIK证明安装程序不会像警告声称的那样写任何"每台机器数据".

ICE91

D:\ hg\downmarker\setup\product.wxs(37):警告LGHT1076:ICE91:文件'downmarker.exe'将安装到每个用户目录'DownMarkerFolder',该目录不会因ALLUSERS值而异.即使需要按计算机安装,也不会将此文件复制到每个用户的配置文件中.

这个警告对我来说没有意义,因为我明确地将安装程序标记为具有"perUser"安装范围.

Cos*_*rvu 9

显示ICE57是因为组件"component.downmarker.exe"包含来自HKEY_CURRENT_USER和HKEY_CLASSES_ROOT的注册表项.HKEY_CLASSES_ROOT是每台机器,因此该组件具有每用户和每机器数据.

我注意到您正在使用HKEY_CLASSES_ROOT进行文件关联.您可以使用"HKEY_CURRENT_USER\SOFTWARE\Classes"来获取每用户文件关联.

ICE91是无害的,可以为每个用户安装忽略:http://msdn.microsoft.com/en-us/library/aa369053( VS.85) .aspx

  • +1 感谢 ICE91 链接,这令人放心。对于 ICE57:`HKEY_CLASSES_ROOT` 已经在每用户上下文中映射到 `HKEY_CURRENT_USER\SOFTWARE\Classes`,它并不总是每台机器。否则我将无法在没有管理员权限的情况下运行我的安装程序。此外,如果我按照您的建议明确写入 `HKCU\Software\Classes`,那么我仍然收到警告,可能是因为 `ProgId` 元素隐式使用了 `HKCR`。 (2认同)