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

Coc*_*lla 3 wix

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

我对新安装程序有问题-它会不断删除与旧安装程序一起安装的配置文件。

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

<Component Id="MyConfig" NeverOverwrite="yes" Permanent="yes">
  <File Id="MyApp.exe.config" Name="MyApp.exe.config" />
</Component>
Run Code Online (Sandbox Code Playgroud)

我尝试将组件设置为IdGuid旧安装程序中的组件相同,但随后将其替换为新的组件-我不希望这样做,因为自初始安装以来该配置文件可能已被修改。

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

The*_*ESJ 5

确保您的RemoveExistingProducts是在InstallExecute之后安排的,例如:afterInstallExecute。组件的GUID和Keypath必须与以前的安装程序中的相同。如果MSI的修改日期等于其创建日期,MSI只会覆盖旧的配置文件。如果修改日期在创建日期之后,则配置文件已被修改,MSI不会覆盖。您不需要Permanent属性,这会使该文件在卸载时泄漏。也不要使用NeverOverwrite:根据文档,这仅用于注册表。