我们正在对我们的产品进行小幅升级,并希望在次要升级中确认以下与组件处理相关的事项:
我不希望在小幅升级后在系统上安装一些组件。因此,我从“设计设计”视图中删除了这些组件。虽然,我仍然可以在“组件”视图中看到带有RED感叹号的组件,表明它们不再是任何功能的一部分。 Installshield建议不应在次要升级中从Product中删除组件。
答案 0 :(得分:1)
这里有多个图层。从根本上说,Windows Installer不允许删除次要升级中的组件(请参阅MSIENFORCEMINORUPGRADERULES或Major Upgrade vs. Minor Upgrade vs. Small Update)。结果通常是该组件中的数据在机器上是孤立的;次要升级不会删除数据,但会删除Windows Installer的数据记录。
有些人建议使用组件设置Reevaluate Condition
获得在次要升级中删除组件所需的效果。默认值为“否”,但如果将其设置为“是”并提供错误的Condition
,例如0
,次要升级可以删除组件的数据。 (您可以将其与空文件结合使用,替换组件中任何文件的内容,以减少安装的大小。仅更改文件内容,否则Windows Installer将无法删除废弃的文件。)
最后,从功能中删除组件不会将其从项目中删除,但是当组件不再是任何功能的一部分时,构建会将其从生成的.msi文件中排除。因此,当您准备好更改为主要升级时,您应该完全从项目中删除该组件;在那之前你应该保留组件。