【发布时间】:2017-07-23 07:27:38
【问题描述】:
我正在执行小规模升级,但它没有将文件更新为我的安装程序功能之一。它在 MSI 日志中给出以下错误。
MSI (c) (88:64) [21:35:44:834]:注意:1:2262 2:补丁 3:-2147287038
MSI (c) (88:64) [21:35:44:834]:机器策略值 “EnforceUpgradeComponentRules”为 0
微星 (c) (88:64) [21:35:44:834]: SELMGR:ComponentId '{A48DDBD3-3B28-F2FF-DBCE-0462EC330D7E}' 是 注册到功能“客户端”,但不存在于组件中 桌子。不支持从功能中删除组件!
微星 (c) (88:64) [21:35:44:834]:SELMGR:从功能中删除组件 不支持
在制作升级安装程序时,我不会删除任何组件。我还检查了任何组件违规规则,但我没有。我不知道为什么会这样。正因为如此,功能“客户”将进入广告状态。我还检查了我的 MSI 中不存在此组件。
【问题讨论】:
-
该组件是否有可能不是您直接创作的,而是通过其他方式(例如动态文件链接等)在构建时添加的?在基础包 .msi 中查找该组件以确定它是什么。
-
始终查看已构建的 msis 而不是 ism 以了解其中的真正内容。
-
@MichaelUrman :不。我们不会在构建时添加它。
-
@ChristopherPainter:我比较了以前版本的MSI和最新的MSI(我要升级),发现该组件的密钥文件已从动态位置删除,因为不再使用在较新的版本中。但是当我查看旧版本的 ISM 时,我没有找到那个组件,但是在那个版本的 MSI 中我可以看到它。为什么会这样?
-
我知道为什么我可以在 MSI 而不是 ISM 文件中看到该组件的原因。因为它是一个动态文件链接,并且在构建时它正在为这些文件创建一个组件。
标签: windows-installer upgrade installshield-2013