Freigeben über


MSIX-Handbuch zur Problembehandlung

In diesem Handbuch werden die häufigsten MSIX-Fehler bei der Installation, Signatur, Übermittlung des App-Installers, fehlende Abhängigkeiten und Laufzeitverhalten behandelt. Jeder Abschnitt enthält das Symptom, die Ursache und die Auflösung.

Für ein vollständiges Protokoll der Bereitstellungsereignisse öffnen Sie Ereignisanzeige, und navigieren Sie zu: Applications and Services Logs → Microsoft → Windows → AppxDeployment-Server → Operational

Tipp

Führen Sie für eine konsolidierte Reihe von Diagnosen auch Windows-App Zertifizierungskit aus, bevor Sie Ihr Paket verteilen.

Installationsfehler

0x80070005 – Zugriff verweigert

Symptom: Add-AppxPackage oder Der App-Installer schlägt mit Fehlercode 0x80070005fehl.

Gilt für: Windows 10 und höher, Windows 11

Ursachen und Korrekturen:

Ursache Reparatur
Wird als Standardbenutzer ohne Erhöhung ausgeführt, wenn für das Paket eine Installation pro Computer erforderlich ist Führen Sie PowerShell als Administrator aus. Verwenden Sie Add-AppxProvisionedPackage zum Installieren für alle Benutzer anstelle von Add-AppxPackage.
Antivirensoftware oder Sicherheitssoftware, die die Paketdatei blockiert Vorübergehendes Deaktivieren der Echtzeitüberprüfung oder Hinzufügen eines Ausschlusses für die .msix / .msixbundle Datei
Paket für einen anderen Benutzer vorbereitet und nicht bereitgestellt Verwenden Sie Add-AppxProvisionedPackage, um für alle Benutzer bereitzustellen.
Dateisystem-ACLs, die den Lesezugriff auf das Paket blockieren Überprüfen Sie die Berechtigungen der Paketdatei mit icacls; gewähren Sie dem installierenden Benutzer Lesezugriff

Paketinstallation blockiert, da die App verwendet wird

Symptom: Update oder erneute Installation schlägt mit einem Fehler fehl, der angibt, dass das Paket verwendet wird. In Ereignisanzeige sehen Sie, dass der Bereitstellungsvorgang abgelehnt wurde.

Gilt für: Windows 10 und höher, Windows 11

Fix: Schließen Sie alle laufenden Instanzen der App, bevor Sie aktualisieren. Wenn es sich bei der App um einen Hintergrunddienst handelt oder eine Hintergrundaufgabe registriert ist, müssen Sie diese möglicherweise auch beenden:

Get-Process -Name "MyApp" | Stop-Process -Force
Add-AppxPackage -Path .\updated-app.msix

Berücksichtigen Sie bei Unternehmensbereitstellungen die Planung von Updates während der Wartungsfenster mithilfe von Intune oder Konfigurations-Manager.

MinVersion oder Architekturkonflikt

Symptom: Die Installation schlägt mit einem Fehler wie "Das Paket konnte nicht installiert werden, da es nicht mit dieser Version von Windows kompatibel ist" oder "Das Paket gilt nicht für diesen Computer."

Gilt für: Windows 10 und höher

Ursachen und Korrekturen:

Ursache Reparatur
Das Paket MinVersion im Manifest ist höher als die Betriebssystemversion. Erstellen eines separaten Pakets für die installierte Betriebssystemversion oder Aktualisieren des Geräts
Architekturkonflikt (z. B. arm64-Paket auf x64-Gerät) Erstellen und verteilen Sie die richtige Architekturvariante; Verwenden eines Bündels (.msixbundle) zur Bereitstellung mehrerer Architekturen aus einer Datei
Das Paket zielt auf eine nur Windows 11-API ohne Kompatibilitätsprüfung ab. Fügen Sie einen TargetDeviceFamily Eintrag für Windows 10 und Windows 11 hinzu, oder schützen Sie den API-Aufruf mit einer Versionsüberprüfung zur Laufzeit.

Hinweis

Verwenden Sie .msixbundle Dateien beim Verteilen an Umgebungen mit gemischter Architektur. Ein Bündel enthält Pakete für mehrere Architekturen und Windows wählt zur Installation das richtige Paket aus.

Add-AppxPackage erfolgreich ist, die App fehlt jedoch im Startmenü.

Symptom: PowerShell meldet Erfolg, aber die App wird nicht in der Startmenü- oder App-Liste angezeigt.

Gilt für: Windows 10 und höher, Windows 11

Häufige Ursachen:

  • Installation pro Benutzer und Computer: Add-AppxPackage Wird nur für den aktuellen Benutzer installiert. Wenn Sie als Administrator angemeldet sind, die App jedoch für einen anderen Benutzer vorgesehen ist, verwenden Sie stattdessen.
  • Paket registriert, aber Kachel nicht angeheftet: Die App ist installiert, aber das Startmenü wurde nicht aktualisiert. Melden Sie sich ab und wieder an, oder überprüfen Sie die Einstellungen → Apps , um die Installation zu bestätigen.
  • Fehlender Startmenüeintrag im Manifest: Überprüfen Sie, ob das <Application> Element AppxManifest.xml einen VisualElements Eintrag mit einem gültigen Square150x150LogoEintrag enthält.
  • Konflikt mit doppelten Paketfamiliennamen: Wenn bereits eine neuere oder ältere Version der App mit demselben Paketfamiliennamen installiert ist, kann die neue Installation sie automatisch ersetzen. Überprüfen mit Get-AppxPackage -Name "YourPackageFamilyName".

Signatur- und Zertifikatfehler

Hinweis

Ausführliche SignTool-Fehlercodes und Flags finden Sie unter "Bekannte Probleme" und "Problembehandlung" für SignTool.

Zertifikat nicht vertrauenswürdig (0x800B0109)

Symptom: Installation schlägt fehl mit dem Fehler 0x800B0109 — "Eine Zertifikatskette wurde verarbeitet, aber endete in einem Stammzertifikat, das vom Vertrauensanbieter nicht vertrauenswürdig ist."

Gilt für: Windows 10 und höher, Windows 11

Ursache: Das zum Signieren des Pakets verwendete Zertifikat befindet sich nicht in den vertrauenswürdigen Zertifikatspeichern des Geräts. Dies ist üblich, wenn sie selbstsignierte Zertifikate für die Entwicklung verwenden.

Behebung: Importieren Sie das Signaturzertifikat in den lokalen Computer des Geräts → Speicher für vertrauenswürdige Personen (nicht den aktuellen Benutzerspeicher – Der App-Installer überprüft nur den Computerspeicher):

# Export the certificate from the package first (if needed)
$cert = (Get-AuthenticodeSignature -FilePath .\app.msix).SignerCertificate
Export-Certificate -Cert $cert -FilePath .\app-cert.cer

# Import into Trusted People (requires administrator rights)
Import-Certificate -FilePath .\app-cert.cer -CertStoreLocation Cert:\LocalMachine\TrustedPeople

Von Bedeutung

Importieren Sie keine Signaturzertifikate in den Speicher für vertrauenswürdige Stammzertifizierungsstellen; es sei denn, das Zertifikat ist ein Stamm-CA. Das Importieren von nicht vertrauenswürdigen selbstsignierten Zertifikaten schwächt den Sicherheitsstatus des Geräts.

Verwenden Sie für Produktions-Apps ein Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle oder Azure Artifact Signing (früher Vertrauenswürdige Signatur) ausgestellt wurde, die mit der Microsoft Identitätsüberprüfungs-Stammzertifizierungsstelle verkettet ist – standardmäßig auf Windows 10 Version 1809 und höher, Windows 11.

Publisher Namenskonflikt (0x8007000B, Ereignis-ID 150)

Symptom: SignTool schlägt mit 0x8007000B fehl, und Ereignisanzeige (AppxPackagingOM-Betriebsprotokoll) zeigt Event ID 150:

error 0x8007000B: The app manifest publisher name (CN=Contoso) must match
the subject name of the signing certificate (CN=Contoso, C=US).

Gilt für: Windows 10 und höher, Windows 11

Cause: Das attribut Publisher in AppxManifest.xml muss exakt mit dem namen subject name des Signaturzertifikats übereinstimmen, einschließlich aller distinguished name fields in derselben Reihenfolge.

Korrektur:

  1. Rufen Sie den genauen Betreffnamen aus dem Zertifikat ab.

    (Get-Item Cert:\CurrentUser\My\THUMBPRINT).Subject
    # Example output: CN=Contoso, C=US
    
  2. Aktualisieren Sie AppxManifest.xml, um genau übereinzustimmen.

    <Identity Name="Contoso.MyApp"
              Publisher="CN=Contoso, C=US"
              ... />
    
  3. Erneut mit MakeAppx.exe verpacken und signieren.

Tipp

Wenn Sie Azure Artefaktsignierung (vormals vertrauenswürdige Signatur) verwenden, muss der Herausgeberwert in Ihrem Manifest mit Ihrer überprüften Identität übereinstimmen , die im Azure Portal unter dem Namen des Zertifikatprofils feld zu finden ist.

Fehler des App-Installers und der Webübermittlung

Schemaversionskonflikt in appinstaller-Datei

Symptom: Das App-Installationsprogramm analysiert oder verarbeitet die .appinstaller Datei nicht, häufig mit einem generischen Fehler bei einer ungültigen Datei oder einem nicht unterstützten Schema.

Gilt für: Windows 10 und höher (versionsabhängig — siehe Tabelle)

Cause: Das attribut Uri des stammelements <AppInstaller> gibt eine Schemaversion an, die von der installierten Version von Windows nicht unterstützt wird.

Schema-Versionen nach Windows Release:

Windows-Version Unterstützte Mindestschemaversion
Windows 10 Version 1709 1.0.0.0
Windows 10 Version 1803 1.1.0.0
Windows 10 Version 1809 1.2.0.0
Windows 10 Version 1903 und höher Windows 11 1.3.0.0, 1.4.0.0, 1.5.0.0

Fix: Legen Sie den Schema-URI in Ihrer .appinstaller Datei auf die Mindestversion fest, für die das unterste unterstützte Betriebssystem erforderlich ist:

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller Uri="https://example.com/app.appinstaller"
              Version="1.0.0.0"
              xmlns="http://schemas.microsoft.com/appx/appinstaller/2017">

Vermeiden Sie die Verwendung der neuesten Schemaversion, wenn Sie ältere Windows 10 Versionen unterstützen müssen.

Dateien, die mit falschem MIME-Typ oder fehlender Inhaltslänge bereitgestellt werden

Symptom: Der App-Installer schlägt beim Installieren von einem HTTP/HTTPS-Endpunkt fehl. Der Fehler kann generisch sein, z 0x80072F76 . B. ("Unbekannter Fehler") oder "Fehler bei der App-Installation".

Gilt für: Windows 10 und höher

Ursache: Der Webserver liefert die .msix, .msixbundle oder .appinstaller Datei mit einer falschen Content-Type-Kopfzeile oder lässt die Content-Length-Kopfzeile weg.

Fix: Konfigurieren Sie Ihren Webserver so, dass MSIX-bezogene Dateien mit den richtigen MIME-Typen bedient werden:

Dateierweiterung Erforderlicher MIME-Typ
.msix application/msix
.msixbundle application/msixbundle
.appinstaller application/appinstaller
.appx application/appx
.appxbundle application/appxbundle

Stellen Sie außerdem sicher, dass jede Antwort einen gültigen Content-Length Header enthält – dies gilt sowohl für GET als auch für HEAD Anforderungen.

Fügen Sie für IIS MIME-Typzuordnungen in web.config hinzu. Für Azure Static Web Apps oder GitHub Seiten benötigen MIME-Typen für diese Erweiterungen möglicherweise eine explizite Konfiguration oder eine benutzerdefinierte Hostinglösung.

Fehlende Abhängigkeiten

Framework-Paket nicht installiert (VCLibs, .NET, Windows App SDK)

Symptom: Die App wird erfolgreich installiert, aber beim Start abstürzt, oder die Installation schlägt mit einem Abhängigkeitsfehler fehl, der auf einen Paketfamiliennamen wie Microsoft.VCLibs, Microsoft.WindowsAppRuntime oder Microsoft.NET.Native verweist.

Gilt für: Windows 10 und höher, Windows 11

Allgemeine Frameworks und wo sie abgerufen werden:

Rahmenwerk Erforderlich, wenn Quelle
VCLibs (x64/x86/arm64) App verwendet C++-Laufzeit Microsoft Store (automatisch installiert) oder direct download
.NET 8 Desktop-Runtime Die App zielt auf .NET 8 ab. Enthalten in Windows App SDK; oder direct download
Windows App SDK (WinAppSDK) App verwendet WinUI 3 oder andere WinAppSDK-APIs Windows App SDK-Versionen auf GitHub

Fix für die Entwicklung: Fügen Sie bei lokaler Installation den -DependencyPackages Parameter hinzu, oder installieren Sie zuerst die -DependencyPackages Framework-Pakete:

# Install VCLibs dependency first
Add-AppxPackage -Path .\Microsoft.VCLibs.x64.14.00.Desktop.appx

# Then install your app
Add-AppxPackage -Path .\MyApp.msix

Fix für verteilung: Wenn Sie außerhalb des Store verteilen, schließen Sie Frameworkpakete in Ihre .appinstaller Datei ein unter <Dependencies>:

<Dependencies>
  <Package Name="Microsoft.VCLibs.140.00.UWPDesktop"
           Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
           Version="14.0.30704.0"
           Uri="https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx"
           ProcessorArchitecture="x64"/>
</Dependencies>

Hinweis

Bei der Verteilung über den Microsoft Store werden die Frameworkabhängigkeiten automatisch heruntergeladen und installiert. Manuelle Abhängigkeitsverwaltung ist nur für Sideloading und Unternehmensbereitstellungen erforderlich.

SignTool in CI/CD nicht gefunden

Symptom: CI/CD-Pipeline (GitHub Actions, Azure DevOps) schlägt mit einem Fehler wie 'signtool' is not recognized as an internal or external command oder SignTool.exe: not found fehl.

Gilt für: Windows 10 und höher, Windows 11 (Signaturcomputer)

Cause: SignTool ist Teil des Windows SDK und ist standardmäßig nicht in standardmäßigen CI-Läuferbildern enthalten.

Fixes:

Option 1 – Installieren Sie Windows SDK in der Pipeline (GitHub Actions):

- name: Install Windows SDK
  run: |
    winget install --id Microsoft.WindowsSDK.10.0.22621 --accept-source-agreements --accept-package-agreements

Option 2 – Verwenden Sie die WinApp CLI (am einfachsten für die MSIX-Signatur):

- name: Install WinApp CLI
  run: winget install -e --id Microsoft.WinAppCLI --source winget --accept-source-agreements
- name: Sign MSIX
  run: winapp sign output\MyApp.msix --cert ${{ secrets.CERT_THUMBPRINT }}

Option 3 – Verwenden Sie Azure Artefaktsignierung (empfohlen für die Produktion):

- name: Sign with Azure Artifact Signing
  uses: azure/trusted-signing-action@v0
  with:
    azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
    azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
    azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
    endpoint: ${{ secrets.AZURE_ARTIFACT_SIGNING_ENDPOINT }}
    trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
    certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
    files-folder: ${{ github.workspace }}\output
    files-folder-filter: msix

Hinweis

Die GitHub Aktion heißt azure/trusted-signing-action (der frühere Dienstname). Dies ist die offizielle Aktion, unabhängig von dem Rebranding in Artefaktsignierung.

Eine vollständige Anleitung zur CI/CD-Signiereinrichtung finden Sie unter Signieren Ihres MSIX-Pakets – End-to-End-Handbuch.

Laufzeit- und Virtualisierungsverhalten

MSIX-Pakete werden in einem einfachen App-Container ausgeführt. Einige Verhaltensweisen, die scheinbar Fehler sind, sind eigentlich beabsichtigt – der Container fängt Datei- und Registrierungsvorgänge ab, um den Rest des Systems zu schützen.

Warum Dateischreibvorgänge scheinbar verschwinden (VFS-Dateiumleitung)

Symptom: Die App schreibt eine Datei in einen Pfad wie C:\Program Files\MyApp\config.ini zur Laufzeit, aber die Datei wird dort nicht angezeigt. Die App liest den Wert richtig zurück, aber andere Prozesse oder Benutzer sehen ihn nicht.

Gilt für: Windows 10 und höher, Windows 11

Erläuterung: MSIX verwendet die VFS-Umleitung (Virtual File System ). Schreibvorgänge in geschützte Systempfade werden stillschweigend an einen benutzerspezifischen Container umgeleitet.

%LocalAppData%\Packages\<PackageFamilyName>\LocalCache\Local\VFS\

Dies ist beabsichtigt – es verhindert, dass MSIX-Apps gemeinsam genutzte Systemspeicherorte ändern und eine saubere Deinstallation unterstützen.

Optionen:

  • Verwenden Sie stattdessen App-Datenordner: Schreiben in ApplicationData.Current.LocalFolder (WinRT) oder %LocalAppData%\Packages\<PFN>\LocalState\ für Benutzerdaten, die beibehalten werden sollen.
  • Verwenden AppData\Roaming für Daten, die geräteübergreifend übertragen werden sollen.
  • Überprüfen Sie den VFS-Container , um umgeleitete Dateien anzuzeigen: %LocalAppData%\Packages\<PackageFamilyName>\LocalCache\

Weitere Informationen dazu, welche Pfade virtualisiert werden, finden Sie unter "Behandeln von Laufzeitproblemen in einem MSIX-Container".

Warum Registrierungsschreibvorgänge scheinbar verschwinden (Registrierungsvirtualisierung)

Symptom: Die App schreibt zur Laufzeit in HKEY_LOCAL_MACHINE\Software\MyApp\, aber der Wert ist für andere Prozesse nicht sichtbar und übersteht eine Neuinstallation nicht.

Gilt für: Windows 10 und höher, Windows 11

Erläuterung: MSIX fängt Schreibvorgänge an HKLM\Software ab und leitet sie an einen pro Paket erstellten Registry-Hive um, der vom Rest des Systems isoliert ist. Bei der Deinstallation wird das Hive gelöscht.

Optionen:

  • Schreiben Sie einstellungen pro Benutzer in HKEY_CURRENT_USER\Software\<AppName> – diese werden nicht virtualisiert und beibehalten.
  • Verwenden Sie die Windows ApplicationData-APIs für den Speicher strukturierter Einstellungen.
  • Deklarieren Sie Registrierungseinträge, die über Benutzer oder Prozesse hinweg freigegeben werden müssen, indem Sie den AppxManifest.xml<Extensions> / <com:Extension> Mechanismus verwenden.

Einen vertieften Einblick in das Verhalten von MSIX-Containern finden Sie unter Verstehen, wie verpackte Desktop-Apps unter Windows laufen.

Windows 10 MSIX-Einschränkungen

Einige MSIX-Features erfordern Windows 11 oder eine bestimmte Windows 10 Version. Wenn Sie auf Windows 10 Geräten bereitstellen, beachten Sie Folgendes.

Features, die Windows 10, Version 2004 (Build 19041) oder höher erfordern

Funktion Mindestversion
AutoUpdate 2021-Schema (ShowPrompt, UpdateBlocksActivation) Windows 10 2004 (19041)
Erzwingung der Paketintegrität (uap10:PackageIntegrity) Windows 10 2004 (19041)
Automatische Reparatur des App-Installers Windows 10 2004 (19041)
Es gibt keine separate Richtlinie für Sideloading bei der Installation vertrauenswürdiger App-Pakete; siehe Aktivieren Ihres Geräts für die Entwicklung für aktuelle Anforderungen. Windows 10 2004 (19041)

Features, die Windows 11 erfordern

Funktion Hinweise
Geringe Paketidentität ohne vollständige Verpackung Erfordert Windows 11
MSIX-Unterstützung für entpackte Apps mit externem Speicherort (vollständige Plattformunterstützung) Einige APIs wurden in Windows 11 verbessert
Verbesserte MsIX-Installationsleistung pro Computer Windows 11 Optimierungen

Windows 10 Geräte, die älter als Version 1709 sind

MSIX wird in Windows 10 Versionen vor 1709 (Fall Creators Update) nicht nativ unterstützt. Verwenden Sie zum Bereitstellen von MSIX-Paketen auf diesen Geräten MSIX Core, die eine Kompatibilitätsebene für Windows 10 Versionen auf down-level-Ebene bereitstellt.

Manifesterweiterungen

Einige AppxManifest.xml Namespaceerweiterungen sind nur für Windows 11. Wenn Sie sie in einem Paket deklarieren, das auf Windows 10 abzielt, kann die Schemaüberprüfung während des Verpackens fehlschlagen oder es kann während der Installation abgelehnt werden. Überprüfen Sie die Schemareferenz für das App-Paketmanifest für die MinOSVersion aufgeführten Erweiterungen.

Debugtipp

Um zu überprüfen, welche MSIX-Features in einem bestimmten Windows 10 Build verfügbar sind, überprüfen Sie die features MSIX-Features und unterstützte Plattformen Seite, auf der die Featureverfügbarkeit nach Betriebssystemversion aufgeführt wird.