防止WiX从旧安装中删除/替换文件

时间:2013-12-14 12:26:41

标签: wix

我正在将旧的Visual Studio安装项目安装程序升级到WiX安装程序。

我遇到了新安装程序的问题 - 它不断删除使用旧安装程序安装的配置文件。

.wxs文件中的组件如下所示:

<Component Id="MyConfig" NeverOverwrite="yes" Permanent="yes">
  <File Id="MyApp.exe.config" Name="MyApp.exe.config" />
</Component>

我尝试将组件IdGuid设置为与旧安装程序中的相同,但是它将现有的配置文件替换为新的 - 我不想要,因为自初始安装以来配置文件可能已被修改。

我想要的是,如果已经安装了MyApp.exe.config,则不应删除或替换它。

1 个答案:

答案 0 :(得分:4)

确保在InstallExecute之后安排RemoveExistingProducts,例如:afterInstallExecute。组件的GUID和Keepath需要与以前的安装程序中的相同。如果修改日期等于其创建日期,MSI将仅覆盖旧配置文件。如果修改日期在创建日期之后,则修改配置文件并且不会覆盖MSI。您不应该使用Permanent属性,这会导致此文件在卸载时泄露。不要使用NeverOverwrite:根据文档,这仅适用于注册表。