Wer seine Installationspakete bereits mit WiX v3 erstellt kann mit relativ wenig Aufwand auch native Arm64 MSI-Pakete erstellen.
Voraussetzung ist ein bestehendes WiX-Setup Projekt in Visual Studio (ich verwende VS 2022) mit installierter WiX v3 Extension und installierten Build Tools.
Da es für die aktuelle Version 3.14 noch kein offizielles Release gibt, muss der Developer Build (v3.14.0.6526 oder höher) installiert werden. Dazu Visual Studio beenden, das WiX Toolset herunterladen und installieren.
In der Setup-Prokjektdatei "<Projekt>.wixproj" die Plattform-Konfiguration innerhalb "<Projects>" hinzufügen
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|ARM64' ">
<DefineConstants>Debug</DefineConstants>
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|ARM64' ">
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
In der ".wxs" Datei ist es nötig, den Wert für "InstallerVersion" abzuändern in 500 (vorher: 200). Für das Installationsverzeichnis kann analog zu x64 die Variable "ProgramFiles64Folder" verwendet werden.
Damit sollte der Buiild eines Arm64 MSI-Pakets möglich sein.
Kleine Ergänzung: Möchte man überprüfen, ob es sich bei einem MSI-Paket auch wirklich um natives Arm64 handelt, kann man das Kommandozeilentool "MsiInfo.exe" verwenden. Das Tool ist Teil der Windows SDK.
Beispielaufruf in PowerShell:
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\MsiInfo.exe" mysetup.msi
Es werden mehrere Eigenschaften in der Konsole ausgegeben. Relevant ist der Wert für Template(MSI CPU) aus der Eigenschaft mit der Nummer 7, z.B.
...
[ 7][/p] Template(MSI CPU,LangIDs) = Arm64;1033
...