为什么我们会在每台计算机安装中收到非广告快捷方式的 ICE57 错误?

2024-01-10

此问题询问 ICE57 验证器之一是否会创建误报错误报告。

我正在使用 WIX 3.9 生成安装程序。我想要使​​用非广告快捷方式的每台计算机安装。

此 WXS 示例安装一个文本文件和打开该文本文件的快捷方式:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="ShortcutTest" Language="1033" 
           Version="1.0.0.0" Manufacturer="Widget Co" 
           UpgradeCode="--YOUR GUID1--">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate EmbedCab="yes"/>

    <Feature Id="ProductFeature" Title="ShortcutTest" Level="1">
      <ComponentRef Id="TextFile" />
      <ComponentRef Id="ShortCut" />
    </Feature>

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="ShortcutTest">
          <Component Id="TextFile" Guid="--YOUR GUID2--">
            <File Id="File" Name="TextFile.txt" Source="TextFile.txt" KeyPath="yes"/>
          </Component>
        </Directory>
      </Directory>

      <Directory Id="ProgramMenuFolder">
        <Directory Id="ApplicationProgramsFolder" Name="Shortcut Test">
          <Component Id="ShortCut" Guid="--YOUR GUID3--">
            <RegistryValue Root="HKMU" Key="Software\WidgetCo\ReadMeTextFile\TextFile" Name="Installed" Type="string" Value="yes" KeyPath="yes"/>
            <Shortcut Id="Shortcut"
                Name="Open Text File"
                Description="Opens a text file"
                Target="[INSTALLFOLDER]TextFile.txt"
                WorkingDirectory="INSTALLFOLDER"/>
            <RemoveFolder Id="ApplicationProgramsFolder" Directory="ApplicationProgramsFolder" On="uninstall"/>
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Product>
</Wix>

如果将上面的示例构建到 MSI 包中,您将得到以下内容内部一致性评估器(ICE) https://msdn.microsoft.com/en-us/library/aa369554(v=vs.85).aspx error:

D:\Robert\Documents\Visual Studio 2013\Projects\ShortcutTest\Product.wxs(27,0): 错误 LGHT0204: ICE57: 组件“ShortCut”同时具有每用户数据和密钥路径,可以是每用户或每台机器。

ICE57 https://msdn.microsoft.com/en-us/library/aa368994(v=vs.85).aspx意味着每用户数据和每台机器数据之间存在不一致。但是,该组件的关键路径是 HKMU,在每台计算机安装中解析为 HKLM (HKEY_LOCAL_MACHINE)。快捷方式的位置源自“ProgramMenuFolder”,在每台计算机安装中解析为C:\ProgramData\Microsoft\Windows\Start Menu\(在 Windows 8.1 上)。该组件的所有资源似乎都没有任何每用户关联。

您可以通过抑制 ICE57 将安装程序包构建到 MSI 中。生成的 MSI 包安装后没有任何明显错误。多个用户可以登录并访问该快捷方式。任何用户都可以卸载该软件包,并且该软件包中的所有资源都将被删除。

答案是Wix 为所有用户/每台机器创建非广告快捷方式 https://stackoverflow.com/questions/2058230/wix-create-non-advertised-shortcut-for-all-users-per-machine有一个有趣的解决方法,即编写广告快捷方式,然后关闭广告。似乎是创建不公开的快捷方式的一种迂回方式。

ICE57 错误的常见修复方法是更改<RegistryValue...>根目录到 HKCU (HKEY_CURRENT_USER)。然而,这会创建一个安装程序,在卸载时可能会留下用户注册表项。例如,如果用户 A 安装该软件包,则会将注册表项添加到用户 A 的注册表配置单元中。如果用户 B 删除该程序包,则注册表项不会从用户 A 的注册表配置单元中删除。

在这种情况下,ICE57 错误是内部一致性评估器中的错误吗?还是我有什么误解?


在研究另一个问题时,我发现了这个评论http://sourceforge.net/p/wix/mailman/message/26687047/ http://sourceforge.net/p/wix/mailman/message/26687047/来自罗布·门兴:

IIRC,这是 ICE57 中的一个错误。 Windows Installer 团队没有考虑 评估这些值时的 ALLUSERS 属性...那是很久以前的事了 尽管如此,我的记忆力可能已经衰退了一点。

它看起来像是 ICE57 中的一个错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我们会在每台计算机安装中收到非广告快捷方式的 ICE57 错误? 的相关文章

随机推荐

  • SFML RenderWindow 需要很长时间才能打开窗口

    我知道这本质上是重复的 但是this https stackoverflow com questions 50988505 sfml renderwindow taking inconsistent time to display从未得到答
  • 修改Google Sheet纸张尺寸

    这是我第一次在谷歌表中使用脚本 我在网上看到了一些代码 我只是想知道如何修改下面代码的纸张尺寸 我们国家的法定尺寸是 8 5 x 13 var exportUrl url replace edit export exportFormat p
  • 鼠标悬停时的 Flash 事件

    有没有办法找出将鼠标移到 Flash 项目中的对象上时调用哪些方法 如果您尝试以下操作 您将能够跟踪对象上的每个侦听器 它将调用所有不带任何参数的侦听器 这将引发错误 如果你发现错误 你可以解析error getStackTrace查看听众
  • 如何发送带有添加空格的 urllib2 请求

    我正在尝试发送一个请求来打开使用空格的网页网址 以便我可以从该页面下载文件 在普通浏览器 即 Chrome 中 当您在地址栏中输入 url 时 文件会自动生成并要求您下载 我不再需要每次需要一组日志时都加载 Web 浏览器 而是尝试创建一个
  • 为什么弹性项目不会缩小到超过内容大小?

    我有 4 个 Flexbox 列 一切正常 但是当我向列中添加一些文本并将其设置为大字体大小时 由于 Flex 属性 它使列比应有的宽度更宽 我尝试使用word break break word它很有帮助 但是当我将列的大小调整到非常小的宽
  • 如何检索 slurm 脚本的内容?

    我几天前提交了一份工作 现在仍在运行 但我忘记了内容script sh那天 还有script sh已被删除 您知道如何恢复该脚本的内容吗 在最新版本中 您可以使用以下命令检索您自己作业的作业脚本 scontrol write batch s
  • 常见问题解答的语义 HTML 标记 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 具有不同原型的函数指针向量,我可以构建一个吗?

    我正在为一个名为 virtual machine 的类做一个解析器 我正在尝试为其构建一个函数向量 但是 vm 上的一些函数需要参数 不同数量 类型的参数 我仍然可以将它们放入我的向量中吗功能 因为它们只有 void f 这是代码 clas
  • 是否可以保存 Java Class 文件?

    我环顾四周 但似乎没有什么能完全涵盖我想做的事情 是否可以保存一个Class
  • Django 管理中的 MultiValueDictKeyError

    UPDATE model class PicturesManager models Manager def create pictures self flat img pictures self create car car image i
  • Butterknife 无法在我的适配器类中绑定

    我有一个适配器可以为我的导航抽屉绘制布局 我的导航抽屉包含两个内部 xml 文件 一个是Header另一个是Row 我将它们绘制在一个适配器中 但是当我尝试时setText 在我的标题上 我无法绑定 这是我的适配器类 public clas
  • Objective C 中 AudioToolbox 的引用错误

    我在一个简单的 Roulett 应用程序中尝试播放一些 wav 文件时遇到以下错误 我不确定该错误意味着什么 因为代码中没有出现警告标志 并且我已导入 这是错误 未定义的符号 AudioServicesCreateSystemSoundID
  • 快速对数计算

    所有代码都在同一台 Linux 机器上运行 在Python中 import numpy as np drr abs np random randn 100000 50 timeit np log2 drr 10 个循环 3 个循环中最好的
  • 解释 @property id 的语法

    在使用类似的东西编写委托时 我看到很多代码引用 property nonatomic weak id
  • 图像类型 int16 到 uint8 的转换

    我有一个具有数据类型的图像int16 因此 当我必须将其范围转换为 0 255 时 我有两种方法可以在 Python 中实现 1 Use numpy uint8直接运行 2 使用OpenCVcv2 normalize函数范围为 0 255
  • 通过互联网连接套接字失败

    目录 Preface 服务器端代码 客户端代码 本地计算机示例 成功的 互联网网络示例 不成功 我的可能性考虑 Preface 我从 MSDN 的类库示例中获取这些代码 所以它必须正确工作 是的 我说对了一部分 在我的电脑上运行就成功了 但
  • 寻的导弹,它们如何工作?

    我正在尝试创造什么 一个会向玩家发射导弹的物体 如果它与玩家相撞 玩家就会死亡 问题 导弹如何朝玩家移动 如何使导弹移动 使其不会立即直接移向玩家 以一定角度缓慢移动 我有一个公式 让鼠标成为 玩家 而导弹则朝它飞去 mouse Mouse
  • 使用java 7语法编译为java 5

    有没有办法使用 java 7 语法并生成适用于 1 5 的字节码 据我所知 选项 target and source不可能有什么不同 检查是否没有使用新的 API 也很好 但并不重要 不它不是 据我所知 不同 source and targ
  • Mule ESB 中的重连策略

    我正在尝试验证文档中提到的 Mule ESB 中的重新连接策略 我已将标准重新连接策略设置为重试次数为 5 次并设置一些超时 我的终点无法到达 因为故意停止它来测试场景 我在 Mule 控制台中有一个例外 异常堆栈是 1 连接被拒绝 con
  • 为什么我们会在每台计算机安装中收到非广告快捷方式的 ICE57 错误?

    此问题询问 ICE57 验证器之一是否会创建误报错误报告 我正在使用 WIX 3 9 生成安装程序 我想要使 用非广告快捷方式的每台计算机安装 此 WXS 示例安装一个文本文件和打开该文本文件的快捷方式