我正在将旧的Visual Studio安装项目安装程序升级到WiX安装程序。
我遇到了新安装程序的问题 - 它不断删除使用旧安装程序安装的配置文件。
.wxs文件中的组件如下所示:
<Component Id="MyConfig" NeverOverwrite="yes" Permanent="yes">
<File Id="MyApp.exe.config" Name="MyApp.exe.config" />
</Component>
我尝试将组件Id
和Guid
设置为与旧安装程序中的相同,但是它将现有的配置文件替换为新的 - 我不想要,因为自初始安装以来配置文件可能已被修改。
我想要的是,如果已经安装了MyApp.exe.config,则不应删除或替换它。
答案 0 :(得分:4)
确保在InstallExecute之后安排RemoveExistingProducts,例如:afterInstallExecute。组件的GUID和Keepath需要与以前的安装程序中的相同。如果修改日期等于其创建日期,MSI将仅覆盖旧配置文件。如果修改日期在创建日期之后,则修改配置文件并且不会覆盖MSI。您不应该使用Permanent属性,这会导致此文件在卸载时泄露。不要使用NeverOverwrite:根据文档,这仅适用于注册表。