相关疑难解决方法(0)

如何在wix v3.8中进行重大升级时保留配置文件?

我想在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>
Run Code Online (Sandbox Code Playgroud)

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

wix upgrade preserve

13
推荐指数
2
解决办法
1万
查看次数

强制升级在初始安装期间修改的文件

我正在为基于WiX的安装程序进行升级功能.

作为安装的一部分,我们正在安装web.config文件,然后使用自定义操作更新文件中的连接字符串.

但是,当我们运行升级时,这会导致问题.我们希望在InstallFinalize之后安排RemoveExistingProducts,因为这在不删除和重新安装未更改的文件方面效率最高.但是,当Windows Installer尝试确定是否应该更新它时,这会留下原始的web.config文件.由于它的上次修改日期比其创建日期更新,因此Windows Installer决定不更新它(请参阅Windows Installer使用的版本控制规则).但我们需要更新它.

一个显而易见的解决方案是将RemoveExistingProducts的调度更改为InstallValidate之后 - 但这样效率很低,而且,我认为如果我们需要这样做,我认为它不会让我们有机会从现有文件迁移设置.

还有其他想法吗?

windows-installer wix upgrade

11
推荐指数
1
解决办法
7751
查看次数

标签 统计

upgrade ×2

wix ×2

preserve ×1

windows-installer ×1