如何修复 ICE57.Per-User 安装

2023-11-27

我们的应用程序在运行时将注册表的一些设置写入 HKCU 配置单元。我想在卸载过程中删除此设置。这是代码:

  <Fragment>
    <DirectoryRef Id="INSTALLLOCATION" DiskId="1" FileSource="$(var.SourceDirProject)\">
      <Component Id="DeleteHkcuManufacturerHive" Guid="GUID">
        <Condition>REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE</Condition>
        <CreateFolder/>
        <RemoveRegistryKey Action="removeOnUninstall"
 Id="HKCUkey" Root="HKCU" Key="Software\$(var.Manufacturer)"/>
      </Component>
    </DirectoryRef>
  </Fragment>

ICE57:组件“DeleteHkcuManufacturerHive”具有每用户和每机器数据以及每机器 KeyPath。
为什么我得到 ICE57?安装是按用户进行的。提前致谢。

UPD:每台机器的元素在哪里?可能是 INSTALLLOCATION=Program Files\ManufacturerDirectory?


您正在 HKCU 配置单元上进行操作,该配置单元仅对当前用户可用。

MSDN状态:

ICE57 验证各个组件不会在每台机器上混合,并且 每个用户的数据。此 ICE 自定义操作会检查注册表项、文件、 目录关键路径和非广告快捷方式。混合每个用户和 同一组件中的每台机器数据可能仅导致部分 为多用户中的某些用户安装组件 环境。

ICE 是对您的安装包的验证。如上所述,ICE57 是为了确保您不会混淆每台机器和每用户的构造。如果您必须在卸载过程中删除 HKCU 的条目(并且该软件是按每台计算机安装的),那么您可以在 Visual Studio 中的“属性”>“工具设置”中关闭该特定验证,如下面的屏幕截图所示:

enter image description here

但是,您可能需要考虑问题的根本原因。如果您正在进行每台计算机安装,您的安装程序或应用程序可能不应该写入 HKCU,因为它仅适用于当前用户,而您的应用程序是为所有用户安装的。

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

如何修复 ICE57.Per-User 安装 的相关文章

  • ClickOnce 有哪些替代方案? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我用过单击一次 https en wikipedia org wiki ClickOnce多年来 我经历
  • 成功后动态改变EndDialog中的RTF内容

    多亏了这个question https stackoverflow com a 33679439 1076116 我能够执行自定义操作来临时更新和动态修改 MSI 数据库 简而言之 我正在做 CustomAction public stat
  • WiX 无法正确渲染图像

    我正在尝试编写一个自定义 WiX 对话框 作为其工作流程的一部分 它会根据某些条件显示错误图像 然而 WiX 似乎忽略了我的尺寸并按其感觉合适的方式显示 这是我的代码
  • 在 WiX Bundle 中包含 .NET 安装程序未检测是否已安装

    我使用的是 WiX 3 7 无法让简单的 捆绑元素正常工作 因为它不会带来 Net FX 安装程序包 也不会将其嵌入到 setup exe 中 我已经在我的程序中为此创建了自己的包Bundle wxs文件 但我仍然遇到麻烦 即使机器已经安装
  • 在wix中添加文件夹到安装程序而不是文件?

    我的安装程序必须将文件复制到 installdir 我的应用程序有大约 2000 个文件 我不可能编写脚本将每个文件添加到安装程序中 wix中是否有任何选项可以让我一次添加所有文件或包含文件的整个文件夹 我是 wix 新手 我在任何教程中都
  • Wix:动态添加功能

    我们正在使用 Wix 为我们的软件构建 msi 我们有一些要在目标机器上实现的组件 插件 每个客户端的插件都不同 我们想要做的是创建一个标准构建并修改 msi 包中的功能列表 有没有办法通过自定义操作动态更改功能列表 例如 从自定义操作中读
  • 用于配置编辑的 wix 自定义对话框

    你好 我正在尝试使用 wix v3 为我的应用程序设置 msi 我对这项任务有疑问 我需要一个用户输入 该输入将存储在我的应用程序的配置文件中 例如 我需要一个用于 sql 连接字符串的对话框 并且用户输入将写入应用程序配置文件中 我尝试用
  • 如何在 WIX 中引用用户的主目录

    我正在为 SDK 创建一个安装程序 其中包括由最终用户编译的源代码 我希望我的 Wix 安装程序默认将其放入用户的主目录中 但我找不到要使用的正确属性名称 您还可以参考HOMEPATH环境变量与 HOMEPATH 有关用于属性的语法的更多详
  • 在每台计算机安装中删除 HKCU 下的注册表项

    我使用 WiX 3 6 构建了一个 perMachine 安装程序来安装我尚未开发的软件 不幸的是 该软件在执行期间在 HKCU 下创建了一些注册表项 卸载时 还应删除自行创建的密钥 移除这些钥匙似乎并不那么容易 我正在与 ICE57 和
  • 如何使用 Wix 运行 sql 脚本创建数据库

    我在使用 Wix 创建数据库时遇到问题 我能找到的示例 参见下面的链接 都是首先使用 wix 创建数据库并运行创建表 sql 脚本 问题是我需要将 wix 设置为使用 CREATE DATABASE 运行 sql 脚本来创建数据库和表 而不
  • 要求 WIX Bootstrapper 在 .NET Framework 安装后重新启动并跳过应用程序启动

    感谢安德烈在这里的回答 使用 WIX 安装程序安装 NET Framework 4 7 2 如果需要 https stackoverflow com questions 53640255 install net framework 4 7
  • WIX 工具集 - 自定义操作命令无法正确检测 Windows 10 版本

    我有一个安装程序 可以部署并运行单独的 exe文件以将驱动程序部署到系统 不幸的是 微软似乎已经放弃了对VersionNTWindows 10 及更高版本中的宏 所以我实施了另一篇文章中建议的方法 https stackoverflow c
  • 让 WiX Bootstrapper 用于 .NET 4.0 的引导

    我一直在寻找让我的引导程序能够安装 NET 4 0 和我自己的应用程序 我查看了几个博客和教程 但无法让它发挥作用 我在 Stack Overflow 问题中读到在 WiX 中启动 调用引导程序 https stackoverflow co
  • 如何在 C# 中找到已安装应用程序的升级代码?

    我正在使用 Windows Installer API 的 C 包装器WIX 工具集 http wixtoolset org 我用ProductInstallation类来获取有关已安装产品的信息 例如产品代码和产品名称 例如 产品名称 我
  • Wix 安装结束后添加多个复选框

    我的 C 应用程序有一个设置 在设置结束时 我添加了一个建议启动应用程序的复选框 效果很好 但我无法添加第二个复选框来提议启动可选安装程序 有我的代码
  • 将引导程序与 MSI ui 一起使用

    我有可以安装的 MSI 文件 它包含一个定制的 UI 还收集用户的数据 作为安装的一部分 如果缺少的话我想安装以下内容 Net框架4 0 Microsoft Visual C 2010 可再发行组件包 x64 据我所知 引导程序也应该包含
  • 如何在 WiX 中启动 PowerShell 并正确访问 Windows 注册表?

    Update 有趣的是 如果我运行 32 位 powershell 来运行脚本 它会给我同样的错误 看起来32位powershell无法访问64位注册表树 我尝试使用WixQuietExec64但它给出了同样的错误 我还尝试提供 power
  • 重新缓存的 msi 仍在运行旧的自定义操作

    我已对 msi 文件中的自定义操作进行了更改 以便在服务停止或停止挂起时不尝试停止 Windows 服务 但是 在使用 msiexec fv mymsi msi 重新缓存 msi 后 当运行到下一个版本的主要升级 其中也有更正的服务停止自定
  • Wix 为所有用户/每台机器创建非广告快捷方式

    在 WIX 中 如何在所有用户配置文件中创建非广告快捷方式 到目前为止 我只能通过广告中的快捷方式来完成此任务 我更喜欢非广告的快捷方式 因为您可以转到快捷方式的属性并使用 查找目标 在教程中 我看到使用注册表值作为快捷方式的键路径 问题是
  • Wix 自定义操作设置值从 CA 到 wix

    在延迟 使用 impoersonate no 将值发送到 WIX 到 CA 时 我使用设置属性和值 并使用 session CustomActionData key 在 CA 中收集数据 有什么办法可以将数据从 CA 发送回 WIX

随机推荐