wix - wix v3.8重大升级时如何保留配置文件?

标签 wix upgrade preserve

我想在 msi 安装程序进行重大升级时保留配置文件。对于配置文件,我在安装时进行了更改。代码如下:

<Component Id="MODIFYCONFIG" Guid="6A1D7762-B707-4084-A01F-6F936CC159CE" Win64="yes">
    <File Id="Application.config" Name="Application.config" Vital="yes" KeyPath="yes" Source="Resource\Application.config"></File>
    <util:XmlFile Id="SetValueIP" Action="setValue" Permanent="yes" File="[#Application.config]"
         ElementPath="/configuration/applicationSettings/Application.Properties.Settings/setting[\[]@name='IpAddress'[\]]/value"  Value="[IPADDRESS]" Sequence="1"/>
    <util:XmlFile Id="SetValuePort" Action="setValue" Permanent="yes" File="[#Application.config]"
         ElementPath="/configuration/applicationSettings/Application.Properties.Settings/setting[\[]@name='IpPort'[\]]/value"  Value="[PORT]" Sequence="2"/>
    <Condition>Not Installed</Condition>
  </Component>
  <Component Id="KEEPCONFIG" Guid="F7F173AA-C2FD-4017-BFBC-B81852A671E7" Win64="yes">
    <RemoveFile Id="ApplicationConfig" Name="Application.config" On="uninstall"/>
    <Condition>(REMOVE=ALL) AND (NOT UPGRADINGPRODUCTCODE)</Condition>
  </Component>

但是当发生重大升级时,该文件不会保留。如何保留修改后的文件?

最佳答案

这为我解决了这个问题...配置文件通过次要/主要升级保留,并在卸载时完全删除。

引用号:Aaron Stebner: How to retain user-customized files during a Windows Installer major upgrade

编辑:链接页面的摘要信息...

  1. 每个配置文件应有其自己的组件,其中配置文件被标记为组件的 key 路径。Windows Installer 将使用未版本化的文件替换逻辑。
  2. 在“InstallFiles”操作之后添加“RemoveExistingProducts”操作。在删除旧 MSI 之前安装所有组件的新版本。当按此顺序完成时,组件的引用计数将增加到 2,但配置文件不会被替换,除非它们未经修改(因为未版本化的文件替换逻辑)。当旧的 MSI 被删除时,引用计数将减回 1,但文件不会被删除,因为引用计数不为 0。

关于wix - wix v3.8重大升级时如何保留配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16186187/

相关文章:

wix - 在 WiX 中,如何创建一个对话框来选择主应用程序目录的子文件夹的名称?

wix - 在wix中复制文件后如何调用自定义操作

mysql - MySQL从5.1升级到5.5,遇到PDOException : SQLSTATE[42000]: Syntax error or access violation

redis - dbfilename 不能是路径,只能是文件名

java - 使用 SimpleXML 序列化时如何保留列表中元素的顺序?

C++ 3D vector 保留 "blocks"

java - 有没有一种简单的方法可以在文件输入期间保留java中的尾随制表符?

wix - 生成 ComponentRefs 的 ComponentGroups

.net-3.5 - 为简化 Vista(及更高版本)机器的 .NET 3.5 安装所需的 WiX 更改

wix - 如何从 Wix 安装程序将自签名 SSL 证书安装到商店中?