Ich habe ein Installationsprogramm erstellt, das eine config.ini kopiert und den Benutzer nach Werten fragt, die dann in die INI-Datei eingefügt werden. Dies funktioniert während einer Neuinstallation und größeren/kleineren Upgrades.WiX Installer entfernt Konfigurationsdateiwerte bei Reparatur
<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>
Wenn jedoch ein Benutzer versucht, die gleiche Version des Produkts zu installieren, die bereits installiert ist, gibt der Installateur Reparaturmodus. Ich bin mir nicht sicher, wie der Reparaturmodus funktioniert, aber im Fall der Datei config.ini scheint es die Datei mit den aufgefüllten Werten zu löschen, sie erneut zu kopieren, und da es sich um eine Reparatur handelt, werden keine Benutzerwerte zum Auffüllen der config.ini Datei mit, so dass die Datei leer ist.
Gibt es eine Möglichkeit, das Installationsprogramm zu veranlassen, diese Datei bei der Reparatur zu ignorieren oder die ursprünglichen Benutzerwerte zu erhalten?
Mögliches Duplikat von [WIX. Wie kann man eine Funktion während der Reparatur nicht neu installieren?] (Http://stackoverflow.com/questions/28816058/wix-how-to-not-reinstall-a-feature-during-repair) – Vanita
Vielleicht kein Duplikat. Die Frage, die Sie verlinken, scheint im Vergleich zu dieser Frage eher verwirrend. – Wolf