Windows installer 未删除旧版本中的组件

Windows installer 未删除旧版本中的组件,windows-installer,upgrade,Windows Installer,Upgrade,我正在编写一个小型MSI软件包的第二个版本,在升级测试期间,我发现旧版本没有作为升级的一部分正确删除 可以使用“添加/删除程序”干净地卸载旧软件包,删除所有已安装的文件。在升级过程中,安装日志显示旧软件包被告知自行删除,但这似乎不会发生,因为属于已移动到另一个目录的组件的文件被搁置 我是否需要从同一软件包的旧版本中显式删除文件,或者这里是否缺少某些内容 InstallExecuteSequence是 LaunchConditions 100 ValidateProductI

我正在编写一个小型MSI软件包的第二个版本,在升级测试期间,我发现旧版本没有作为升级的一部分正确删除

可以使用“添加/删除程序”干净地卸载旧软件包,删除所有已安装的文件。在升级过程中,安装日志显示旧软件包被告知自行删除,但这似乎不会发生,因为属于已移动到另一个目录的组件的文件被搁置

我是否需要从同一软件包的旧版本中显式删除文件,或者这里是否缺少某些内容

InstallExecuteSequence是

LaunchConditions            100
ValidateProductID           150
FindRelatedProducts         162
AppSearch                   175
CostInitialize              200
FileCost                    300
CostFinalize                400
MigrateFeatureStates        450
InstallValidate             500
InstallInitialize           600
ProcessComponents           620
UnpublishFeatures           650
RemoveFiles                 700
RemoveFolders               800
CreateFolders               900
MoveFiles                   1000
InstallFiles                1100
PublishFeatures             1200
PublishProduct              1300
RegisterProduct             1400
RegisterUser                1500
InstallFinalize             1600
RemoveExistingProducts      1700

更新:删除操作抱怨在InstallFinalize期间无法删除
C:\Config.msi\.
。这可能与某些方面有关吗?

如果在InstallFinalize之后计划RemoveExistingProducts,则必须遵守所有组件规则。(请参阅。)“已移动到另一个目录的组件”需要创建一个新组件。

这看起来很像我正在寻找的组件。明天早上我会试试。我想前面会有更多的文档阅读——我已经设法将它破坏到一个点,其中一个组件不再被删除,并且日志文件包含二进制垃圾。8-/