Wir verwenden Wix V3.11, um ein MSI-Setup für unsere C# -Anwendung zu erstellen. Wir haben eine 32 Bit und eine 64 Bit Build für jede Version:Wie kann ich eine Update-Bedingung verwenden, um Variablen in Wix zu setzen?
Der vorinstallierte Installationspfad für die 32 Bit Build ist: 'C: \ Programme (x86)'.
Der vorinstallierte Installationspfad für das 64 Bit Setup ist: 'C: \ Programme'.
Wir verwenden die folgende Erklärung die Pfade zu setzen:
<?define bitness = $(var.Platform) ?>
<?if $(var.Platform) = "x86" ?>
<?define ProgramFilesPath = ProgramFilesFolder?>
<?define Win64 = no?>
<?else?>
<?define ProgramFilesPath = ProgramFiles64Folder?>
<?define Win64 = yes?>
<?endif?>
die Variable hier:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.ProgramFilesPath)" Name="$(var.ProgramFilesPath)">
[... more folder ...]
</Directory>
</Directory>
Das Problem: Wenn die Verbraucher den Weg für die erste Installation zum Beispiel ändern 'C:/MyFolder' und führt eine Aktualisierung aus, dann verschiebt die msi-Einrichtung die Software zu 'C: \ Programme (x86)' oder 'C: \ Programme'.
Frage: Wie kann ich den benutzerdefinierten Installationspfad 'C:/MyFolder' der ersten Installation auf einem Update halten? Vielleicht gibt es irgendeine Update-Bedingung, die ich verwenden kann? Meine Phantasie:
<?define bitness = $(var.Platform) ?>
<?if UPDATE ?> <!-- here -->
<?if $(var.Platform) = "x86" ?>
<?define ProgramFilesPath = ProgramFilesFolder?>
<?define Win64 = no?>
<?else?>
<?define ProgramFilesPath = ProgramFiles64Folder?>
<?define Win64 = yes?>
<?endif?>
<?endif?>