开发者

Component from old version not removed

I'm authoring the second version of a small MSI package, and during the upgrade test, I've found that the old versio开发者_Go百科n is not properly removed as part of an upgrade.

The old package can be cleanly uninstalled using "Add/Remove Programs", all files that have been installed are deleted. During an upgrade, the install log shows the old package being told to REMOVE itself, however this appears to not happen, as a file belonging to a component that has moved to another directory is left stranded.

Do I need to explicitly remove files from older versions of the same package, or is there something I may be missing here?

InstallExecuteSequence is

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

Update: The removal complains about being unable to remove C:\Config.msi\. during InstallFinalize. Could this be related in some way?


With RemoveExistingProducts scheduled after InstallFinalize, you must adhere to all component rules. (See http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/.) A "component that has moved to another directory" requires creating a new component.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜