我正在创作小型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\.
。这可能在某种程度上有关系吗?
答案 0 :(得分:2)
在InstallFinalize之后安排RemoveExistingProducts,您必须遵守所有组件规则。 (参见http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/。)“已移至另一个目录的组件”需要创建一个新组件。