Я создал установщик, который копирует config.ini и запрашивает у пользователя значения, которые затем вставляются в ini-файл. Это отлично работает во время обновления и крупных/мелких обновлений.WiX Installer удаляет значения файла конфигурации при ремонте
<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. Как не переустанавливать функцию во время ремонта?] (Http://stackoverflow.com/questions/28816058/wix-how-to-not-reinstall-a-feature-during-repair) – Vanita
Возможно, это не дубликат. Вопрос, на который вы ссылаетесь, кажется довольно запутанным по сравнению с этим. – Wolf