【问题标题】:Component from old version not removed旧版本的组件未删除
【发布时间】:2011-04-05 15:28:39
【问题描述】:

我正在创作一个小型 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\.。这有什么关系吗?

【问题讨论】:

    标签: windows-installer upgrade


    【解决方案1】:

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

    【讨论】:

    • 这看起来很像我要找的东西。明天早上试试。
    • 我想前面会有更多的文档阅读——我已经设法将它破坏到一个组件不再被删除的地步,并且日志文件包含二进制垃圾. 8-/
    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2015-03-12
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多