当软件使用主要升级时,如何在卸载时删除配置文件,@ noneoverwrite和@permanent

时间:2016-04-05 11:37:37

标签: wix windows-installer wix3.9

主要升级和配置文件是软件的常见组成部分。

主要升级宣言:

<MajorUpgrade DowngradeErrorMessage="A newer version of $(var.AppName) is already installed." AllowSameVersionUpgrades="yes" /> 

在进行重大升级时,不应删除配置文件,也不应覆盖配置文件。配置文件必须保留。这可以通过以下声明来实现:

<Component Id="MyConfigComponent" NeverOverwrite="yes" Permanent="yes" Guid="MY-GUID-HERE">
    <File Id="MyConfigOutput" KeyPath="yes" Name="MyConfig.config" Source="..\MyApp\MyConfig.config.bak"/>
</Component>

如何在卸载时删除文件MyConfig.config

使用<RemoveFile On="uninstall" Name="MyConfig.config" ... >之类的声明会删除升级时的配置文件。因此,它不能用于此目的。这同样适用于RemoveFolderEx。我有什么用呢?

1 个答案:

答案 0 :(得分:0)

您必须编写一个自定义操作来手动删除文件/目录,并安排它在条件&#34; $ config_file_component = 2和Not UPGRADINGPRODUCTCODE&#34;下执行。这将在删除配置文件组件时(在卸载或修改期间)触发自定义操作,但在升级期间不作为卸载过程的一部分。