Ich verwende folgende definieren, um meine Setup-Skript entsprechend der Build-Umgebung flexibel zu machen.WiX x86/x64 Build mit Platform-Attribut
<?if $(var.Platform)=x64 ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?define win64Flag = "yes"?>
<?define TargetConfigurationPath = "bin\x64\Release"?>
<?else ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?define win64Flag = "no"?>
<?define TargetConfigurationPath = "bin\x86\Release"?>
<?endif ?>
im Detail Ich kümmere mich um die Variable win64Flag, die ich in jedem Win64-Attribut von Komponenten verwende. Ich verwende die Plattform auch im Attribut "Plattform" der Pakete. Aber zurück zu dem Win64-Attribute, verwende ich die Variable auf diese Weise:
Win64="$(var.win64Flag)"
Und ich bekomme immer eine Warnung mir zu sagen, dass diese Aussage in einem YesNoType Attribute ungültig ist.
Ich baue dieses Zeug candle.exe mit diesem Aufruf mit:
candle.exe -ext WixUtilExtension -dPlatform=x86 "Deployment\WiX Setup Project\SetupScript.wxs" -out "Deployment\TempBuildOutput\SetupScript x86.wixobj"
light.exe -ext WixUIExtension -ext WixUtilExtension "Deployment\TempBuildOutput\SetupScript x86.wixobj" -out "Deployment\TempBuildOutput\Installer_x86.msi"
Ich habe einige Custom in meinem Skript, das auto-eine Anwendung startet, wenn die Installation abgeschlossen. Dies funktioniert bei x64-Builds, aber nicht bei x86-Builds. Das ist der Grund, warum ich denke, dass etwas mit dem Win64-Attribut oder besser mit der Art, wie ich es verwende, nicht stimmt.
Aber nach meinen Gedanken muss etwas mit diesem Code stimmen, weil die Dateien in den entsprechenden Ordner auf x64 (Programme) und x86 (Programme (x86)) installiert sind. Aber ich frage mich, was der Grund ist, warum meine Apps nach der Installation nicht gestartet wurden.
Ich arbeite mit einem x64 Windows, kann dies der Grund sein, meine x86 Autostart-Apps nicht zu starten?
Gibt es eine Möglichkeit, die Warnung über meine Verwendung des Win64-Attributs zu lösen?