的DLL次要升级

问题描述:

过程中不更换在小幅升级,我发现了以下错误:的DLL次要升级

SELMGR: ComponentId '{C1B06529-966C-2A82-EF0C-A5CFA0113872}' is registered to feature 'X', but is not present in the Component table. Removal of components from a feature is not supported!

我不明白为什么我得到这个错误,或者为什么的InstallShield试图将其删除。这是真的,这个值是不是在成分表中,但它首先安装

过程中的不存在在第一次安装我有以下行:

Executing op: ComponentRegister(ComponentId={C1B06529-966C-2A82-EF0C-A5CFA0113872},KeyPath=[path]\Newtonsoft.Json.dll,State=3,,Disk=1,SharedDllRefCount=1,BinaryType=0)

有没有办法告诉InstallShield能够坐视不理?

简短回答:使用主要升级来提供最新版本的应用程序。


你删除文件Newtonsoft.Json.dll在你设置的最新版本?您必须遵循才能使用次要升级的规则非常严格。请在此阅读“更新规则”部分:http://www.installsite.org/pages/en/msi/updates.htm。还有其他一些限制 - 该列表相当陈旧。它看起来像你删除了上述文件,这会导致您的次要升级失败。

大多数人最终使用主要升级而不是一个小的升级 - 这是更灵活和可靠 - 在你的情况下,你似乎必须。如果我想用一些更新的文件创建一个小补丁,并且对安装程序的组件和功能结构没有其他更改,我只使用较小的升级。这些是唯一的情况下,我发现小升级实用。

Installshield具有相当不错的帮助资料,可帮助您设置重大升级。只需搜索在线帮助。 Here is just an online version of their documentation for reference。基本上你去“Upgrades view”并按照你在那里看到的指示。


另见Michael Urman的回答(Installshield的开发商,据我所知)在这里:Installshield minor upgrade component。他提供了两个更好的链接供您检查。

+0

问题在于Installshield添加了此依赖项,因为“在构建时扫描”的值为“依赖项和属性”。 我将其更改为仅属性,现在我没有此问题 – Tsahi

+0

好吧,重要的升级可能仍然是升级问题的解决方案。除非你还没有活着,而小升级只是一个测试。就像我说的,当整体设置功能和组件结构没有变化时,小升级基本上可以提供一些更新的文件,但在大多数情况下,人们最终会使用主要的升级。 –