我们正在对我们的产品进行小升级,并想确认以下与小升级中的组件处理相关的事情:
我不想在小升级后在系统上安装一些组件。所以,我已经从“设置设计”视图中删除了这些组件。尽管如此,我仍然可以在组件视图中看到带有红色感叹号的组件,表明它们不再是任何功能的一部分。Installshield 建议不要在小升级中从产品中删除组件。
- 好吗?或者,它会增加升级或卸载的风险吗?
- 在组件视图中组件仍以红色感叹号可见。这是否意味着我的产品仍然有组件并且我可以安全地从设置设计视图中删除这些组件?
我们正在对我们的产品进行小升级,并想确认以下与小升级中的组件处理相关的事情:
我不想在小升级后在系统上安装一些组件。所以,我已经从“设置设计”视图中删除了这些组件。尽管如此,我仍然可以在组件视图中看到带有红色感叹号的组件,表明它们不再是任何功能的一部分。Installshield 建议不要在小升级中从产品中删除组件。
这里有多层。从根本上说,Windows Installer 不允许在次要升级中删除组件(请参阅MSIENFORCEMINORUPGRADERULES或Major Upgrade vs. Minor Upgrade vs. Small Update)。结果通常是该组件中的数据在机器上是孤立的;次要升级不会删除数据,但会删除 Windows Installer 的数据记录。
有些人建议通过使用组件设置来获得在次要升级中删除组件的预期效果Reevaluate Condition
。默认为 No,但如果您将此设置为 Yes 并提供 falseCondition
等0
,则次要升级可以删除组件的数据。(您可以进一步将此与替换组件中任何文件的内容的空文件结合起来,以减少安装的大小。仅更改文件的内容,否则 Windows Installer 将无法删除过时的文件。)
最后,从功能中删除组件不会将其从项目中删除,尽管当组件不再是任何功能的一部分时,构建会将其从生成的 .msi 文件中排除。因此,当您准备好进行重大升级时,您应该从项目中完全删除该组件;在此之前,您应该保留该组件。