Windows installer 在小升级期间不更换DLL

Windows installer 在小升级期间不更换DLL,windows-installer,installshield,installshield-2016,Windows Installer,Installshield,Installshield 2016,在小升级期间,我遇到以下错误: SELMGR:组件ID“{C1B06529-966C-2A82-EF0C-A5CFA0113872}”已注册到功能“X”,但不在组件表中。不支持从功能中删除组件 我不明白为什么会出现此错误,或者为什么installshield会尝试删除它。确实,该值不在组件表中,但在第一次安装时不在组件表中 在第一次安装期间,我有以下行: 执行op:ComponentRegisterComponentId={C1B06529-966C-2A82-EF0C-A5CFA0113872

在小升级期间,我遇到以下错误:

SELMGR:组件ID“{C1B06529-966C-2A82-EF0C-A5CFA0113872}”已注册到功能“X”,但不在组件表中。不支持从功能中删除组件

我不明白为什么会出现此错误,或者为什么installshield会尝试删除它。确实,该值不在组件表中,但在第一次安装时不在组件表中

在第一次安装期间,我有以下行:

执行op:ComponentRegisterComponentId={C1B06529-966C-2A82-EF0C-A5CFA0113872},KeyPath=[path]\Newtonsoft.Json.dll,State=3,Disk=1,sharedDLRefCount=1,BinaryType=0

有没有办法让installshield忽略这一点?

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

您是否在最新版本的安装程序中删除了文件Newtonsoft.Json.dll?你必须遵守的规则是可以使用一个小的升级是相当严格的。请阅读此处的更新规则部分:。还有一些进一步的限制——这个列表已经很旧了。看起来您删除了上述文件,这会导致您的小升级失败

大多数人最终使用的是大升级,而不是小升级——这更灵活、更可靠——在您的情况下,似乎您必须这样做。如果我想创建一个包含两个更新文件的小补丁,并且不对安装程序的组件和功能结构进行其他更改,我只使用小升级。只有在这些情况下,我才发现小规模升级是可行的

Installshield有很好的帮助材料,可以帮助您进行重大升级。只需在联机帮助中搜索。基本上,您可以转到,并按照您在那里看到的说明进行操作


另请参阅我所知的Installshield developer的答案:。他还提供了两个很好的链接供您检查。

问题是Installshield添加了此依赖项,因为构建时扫描的值是“依赖项和属性”。我把它改成了properties only,现在我没有这个问题了OK,一个主要的升级可能仍然是解决升级问题的方法。除非你还没有上线,小升级只是一个测试。正如我所说的,在总体设置功能和组件结构没有变化的情况下,小升级基本上是为了交付一些更新的文件,在大多数其他情况下,人们最终使用大升级。