【发布时间】:2016-07-28 08:59:55
【问题描述】:
我创建了一个安装程序,它复制一个 config.ini 并要求用户输入值,然后将这些值插入到 ini 文件中。这在全新安装和主要/次要升级期间工作正常。
<Component Id="ConfigIni" Guid="GUID-GOES-HERE" DiskId="1">
<File Id="ConfigIniFile"
Name="config.ini"
Source="../../artefacts/etc/template-config.ini"
KeyPath="yes"/>
<IniFile Id="ValueOne"
Action="addLine"
Directory="ETC"
Section="sectionone"
Name="config.ini"
Key="valueone"
Value="[VALUEONEPROPERTY]" />
<IniFile Id="ValueTwo"
Action="addLine"
Directory="ETC"
Section="sectiontwo"
Name="config.ini"
Key="valuetwo"
Value="[VALUETWOPROPERTY]" />
</Component>
但是,如果用户尝试安装已安装的相同版本的产品,安装程序将进入修复模式。我不确定修复模式是如何工作的,但在 config.ini 文件的情况下,它似乎正在删除具有填充值的文件,再次复制它,并且因为它是一种修复,它没有任何用户值来填充config.ini 文件,所以文件是空白的。
有没有办法让安装程序在修复时忽略此文件,或获取原始用户值?
【问题讨论】:
-
可能不是重复的。与此问题相比,您链接的问题似乎相当混乱。
标签: wix windows-installer wix3 repair