【问题标题】:wix: ICE57 and ICE91 warnings for perUser installerwix:针对每个用户安装程序的 ICE57 和 ICE91 警告
【发布时间】:2010-12-15 21:18:10
【问题描述】:

我正在使用wix 3.5 编写一个具有“perUser”安装范围的 Windows 安装程序。 wxs file is here,生成的MSI file is here

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

ICE57

D:\hg\downmarker\setup\product.wxs(34) :警告 LGHT1076 :ICE57:组件 'component.downmarker.exe' 两者都有 每用户和每台机器的数据 HKCU 注册表 KeyPath。

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

ICE91

D:\hg\downmarker\setup\product.wxs(37) :警告 LGHT1076 :ICE91:文件 'downmarker.exe' 将被安装到 每个用户目录 'DownMarkerFolder' 不变 基于 ALLUSERS 值。这个文件 不会复制到每个用户的个人资料中 即使每台机器安装 想要的。

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

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    显示 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
    猜你喜欢
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多