0

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

重大升级声明:

<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。我该用什么来代替?

4

1 回答 1

0

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

于 2016-04-06T17:52:47.037 回答