MSIX-Testleitfaden vor der Einreichung: Verpackungsprobleme besser lokal finden als bei der Store-Zertifizierung
2026-06-01
Tags: Windows · Microsoft Store · MSIX · Store-Fallen
In Store-Fallen #4 sind wir auf das Problem gestoßen, dass .NET Trimming WinUI 3-Funktionen stillschweigend deaktiviert — lokal im Debug-Modus lief alles einwandfrei, aber das Release-Paket wurde nach der Einreichung abgelehnt. Die Gemeinsamkeit solcher Probleme: Wenn man vor der Einreichung das gepackte Artefakt lokal verifiziert, lassen sich viele Fehler im Vorfeld abfangen. Natürlich lassen sich nicht alle Probleme im Voraus entdecken (z. B. lässt sich der Geister-Eintrag im Startmenü durch Abhängigkeitspakete nur schwer lokal reproduzieren), aber zumindest ein Großteil lässt sich abfangen.
Dieser Artikel fasst einen lokalen Verifizierungsworkflow vor der MSIX-Einreichung zusammen, der WACK-Zertifizierung, Installation selbstsignierter Zertifikate, die Installation von Abhängigkeiten und Tests auf einer sauberen virtuellen Maschine abdeckt.
Schritt 1: WACK ausführen (Windows App Certification Kit)
WACK ist ein lokales Vorab-Zertifizierungstool von Microsoft. Es führt eine Reihe von Prüfungen an Ihrem Paket durch und simuliert dabei einige der Store-Zertifizierungstests.
Einige wichtige Hinweise:
- Kann nur Release-Pakete überprüfen, Debug-Pakete werden nicht unterstützt — was Sie im Idealfall dazu zwingt, den Release-Build zu testen
- WACK wurde von Microsoft als veraltet markiert (wird nicht mehr gepflegt), kann aber weiterhin für optionale lokale Vorabprüfungen verwendet werden; die offizielle Zertifizierung erfolgt automatisch nach der Einreichung im Store
- Ein bestandenes WACK garantiert nicht, dass die Store-Prüfung bestanden wird, aber es hilft, viele grundlegende Probleme (API-Konformität, Leistung, Sicherheit usw.) im Vorfeld abzufangen
Verwendung: Wählen Sie im Visual Studio-Assistenten zum Verpacken und Veröffentlichen im Schritt Paket auswählen und konfigurieren die Option unten „Projekt erstellen, um die App mit dem Windows App Certification Kit zu überprüfen". Nach Abschluss der Verpackung erscheint die Schaltfläche „Windows App Certification Kit starten". Alternativ können Sie im Startmenü nach Windows App Certification Kit suchen und es manuell starten.
Schritt 2: Ein Test-Paket mit selbstsigniertem Zertifikat erstellen
Dieser Schritt ist etwas umständlich.
MSIX-Pakete müssen signiert sein, um installiert werden zu können. Während der Entwicklung verwendet Visual Studio ein temporäres Zertifikat, aber das resultierende MSIX-Paket enthält nicht zwingend ein verwendbares Zertifikat. Der tatsächliche Ablauf sieht so aus:
Zuerst einmal mit Sideloading-Modus verpacken
- Rechtsklick auf das Projekt → Verpacken und veröffentlichen
- Sideloading auswählen (nicht Microsoft Store)
- Signaturzertifikat auswählen und Verpackung abschließen
Dann mit Store-Modus ein Test-Paket erstellen
- Erneut Verpacken und veröffentlichen, diesmal Microsoft Store (AppName, bereitgestellt von PublisherName) auswählen
- Das so erstellte Test-Paket (im Ordner
_Testim VerzeichnisAppPackages) enthält dann das selbstsignierte Zertifikat
Wenn Sie Schritt 1-3 überspringen und direkt ein Store-Paket erstellen, ist das MSIX-Zertifikat leer — ein ziemlich tückisches Detail.
Schritt 3: Zertifikat installieren
Nachdem Sie das Test-Paket mit Zertifikat erhalten haben:
Zertifikat installieren
- Rechtsklick auf die
.msix-Datei → Eigenschaften → Registerkarte Digitale Signaturen - Signatur auswählen → Details → Zertifikat anzeigen
- Zertifikat installieren → Lokaler Computer auswählen → im Speicher Vertrauenswürdige Personen (Trusted People) ablegen
Hinweis: Der Publisher (CN) des Zertifikats muss mit dem <Publisher> in Package.appxmanifest übereinstimmen, sonst schlägt die Installation fehl.
Schritt 4: Abhängigkeiten und MSIX-Paket installieren
Wenn Ihr Windows App SDK-Projekt im Framework-dependent-Modus betrieben wird (das ist die Standardeinstellung), hängt die Ausführung der Anwendung von der Windows App Runtime ab. Bei der Store-Verteilung werden Abhängigkeiten automatisch behandelt, aber für lokale Tests müssen diese manuell installiert werden.
Die gute Nachricht: Der _Test-Ordner des Test-Pakets enthält ein Unterverzeichnis Dependencies, in dem die Abhängigkeitspakete nach Architektur sortiert sind:
AppPackages/
MyApp_1.0.0.0_x64_Test/
Dependencies/
x64/
Microsoft.WindowsAppRuntime.1.8.msix
...
MyApp_1.0.0.0_x64.msixInstallationsreihenfolge: Zuerst die Runtime aus Dependencies installieren, dann die Anwendung selbst.
Im Self-contained-Modus (in .csproj wurde <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained> gesetzt) müssen keine zusätzlichen Abhängigkeiten installiert werden — die Runtime ist bereits in die Anwendung gepackt.
Schritt 5: Vollständige Verifizierung auf einer sauberen virtuellen Maschine
Auf dem Entwicklungsrechner ist zu viel installiert — verschiedene SDKs, Runtimes, Caches. Dass Ihre Anwendung dort läuft, bedeutet nicht, dass sie auch bei den Nutzern läuft. Es wird empfohlen, den gesamten Ablauf in einer sauberen Umgebung durchzugehen.
Virtualisierungslösungen
Beide Optionen sind geeignet:
- Hyper-V Quick Create: Die von Microsoft empfohlene Lösung. Im Startmenü nach „Hyper-V Quick Create" suchen und „MSIX Packaging Tool Environment" auswählen, um eine VM zu erstellen
- VMware: Die Lösung, die ich selbst verwende. Eine saubere Windows 10/11-VM erstellen, einen Snapshot machen und vor jedem Test zum sauberen Zustand zurückkehren
Unabhängig von der gewählten Option ist die Kernanforderung nur eine: Die Umgebung sollte möglichst der Erstinstallationsumgebung der Nutzer entsprechen.
Was auf der sauberen VM geprüft werden sollte
- Selbstsigniertes Zertifikat installieren (Ablauf aus Schritt 3)
- Abhängigkeitspakete installieren (Schritt 4)
- Die Anwendung selbst installieren
- Anwendung starten und Kernfunktionen prüfen
- Startmenü, Taskleisten-Tray, Deinstallation usw. überprüfen
Checkliste
Gehen Sie diese Checkliste durch, bevor Sie im Store einreichen:
- [ ] Test-Paket mit Release-Konfiguration erstellen
- [ ] WACK ausführen und sicherstellen, dass keine schwerwiegenden Fehler vorliegen
- [ ] Sicherstellen, dass das Test-Paket ein selbstsigniertes Zertifikat enthält (vorher einmal im Sideloading-Modus verpacken)
- [ ] Zertifikat auf Local Machine → Trusted People installieren
- [ ] Vollständige Verifizierung auf einer sauberen VM: Zertifikat installieren → Abhängigkeiten installieren → App installieren → Funktionen testen
- [ ] Im Framework-dependent-Modus sicherstellen, dass die Abhängigkeitspakete ordnungsgemäß installiert werden können
- [ ] Anwendung startet normal, Kernfunktionen sind verfügbar, Startmenü/Deinstallation usw. verhalten sich korrekt
Dieser Artikel ist ergänzende Lektüre zur Store-Fallen-Serie.