/ / Wie kann ich eine Datei in nachfolgenden Installationen nicht kopieren? - wix, wix3.7

Wie kann ich eine Datei in nachfolgenden Installationen nicht kopieren? - wix, wix3.7

In der Product.wxs habe ich Schedule = "afterInstallInitialize" in MajorUpgrade festgelegt, damit bei einem Fehler der Installation die vorherige Version wiederhergestellt wird.

Unser Windows-Dienst verwendet app.config, die das Installationsprogramm auf die installierte Maschine kopiert hat. Wir machen dies, indem wir die folgende Zeile in Product.wxs einfügen:

<Component Id="Config" Win64="yes">
<File Source="$(var.WixWindowsService2012.TargetDir)WixWindowsService2012.exe.config"
Name="WixWindowsService2012.exe.config"
Vital="yes" KeyPath="yes" />
</Component>

Wir möchten diese app.config-Datei nur bei der ersten Installation kopieren und NICHT in den nachfolgenden Installationen.

Wenn ich das obige Komponentenelement in auskommentiereDie Installation von Product.wxs ist fehlgeschlagen, da während der Installation app.config im installierten Ordner gelöscht wird. Da der Windows-Dienst dies erfordert, schlägt die Installation fehl.

Wie kann ich die Installation so gestalten, dass die app.config nicht in den installierten Ordner kopiert wird, wenn dort bereits die app.config vorhanden ist?

Vielen Dank.

Antworten:

0 für die Antwort № 1

Das Problem ist, dass RemoveExistingProducts vonBeim Upgrade wird die Datei entfernt. Anschließend wird bei dem eingehenden Upgrade die neue installiert, wie in der WiX-Mailingliste beschrieben. RemoveExistingProducts muss am Ende vor InstallFinalize und nach InstallExecute stehen.