主要升级和配置文件是软件的常见组成部分。
主要升级宣言:
<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
。我有什么用呢?
答案 0 :(得分:0)
您必须编写一个自定义操作来手动删除文件/目录,并安排它在条件&#34; $ config_file_component = 2和Not UPGRADINGPRODUCTCODE&#34;下执行。这将在删除配置文件组件时(在卸载或修改期间)触发自定义操作,但在升级期间不作为卸载过程的一部分。