Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WiX安装程序在修复时删除配置文件值_Wix_Windows Installer_Wix3_Repair - Fatal编程技术网

WiX安装程序在修复时删除配置文件值

WiX安装程序在修复时删除配置文件值,wix,windows-installer,wix3,repair,Wix,Windows Installer,Wix3,Repair,我创建了一个安装程序,它复制一个config.ini,并向用户请求值,然后将这些值插入到ini文件中。在新安装和主要/次要升级过程中,此功能工作正常 <Component Id="ConfigIni" Guid="GUID-GOES-HERE" DiskId="1"> <File Id="ConfigIniFile" Name="config.ini" Source="../../artefacts/etc/templ

我创建了一个安装程序,它复制一个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文件,因此该文件为空


有没有办法让安装程序在修复时忽略此文件,或者获取原始用户值?

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


在WiX中,使用保存属性值,以便在这些维护情况下恢复属性值

可能重复的,可能不是重复的。与此相比,您链接到的问题似乎相当混乱。