旧版本的组件未删除

时间:2011-04-05 15:28:40

标签: windows-installer upgrade

我正在创作小型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\.。这可能在某种程度上有关系吗?

1 个答案:

答案 0 :(得分:2)

在InstallFinalize之后安排RemoveExistingProducts,您必须遵守所有组件规则。 (参见http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/。)“已移至另一个目录的组件”需要创建一个新组件。