【问题标题】:WiX Installer removes config file values on repairWiX 安装程序在修复时删除配置文件值
【发布时间】: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


【解决方案1】:

基本问题是没有保留属性值。没有什么魔法可以在安装和修复(或添加新功能等)之间自动保存属性值。问题不在于文件被替换,因为 Windows 不会用用户数据替换已修改的文件。

在 WiX 中,使用 "remember property" pattern 保存属性值,以便在这些维护情况下恢复它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多