Felsökningsguide för MSIX

Den här guiden beskriver de vanligaste MSIX-felen för installation, signering, leverans av appinstallationsprogram, saknade beroenden och körningsbeteende. Varje avsnitt innehåller symtom, grundorsak och lösning.

Om du vill ha en fullständig logg över distributionshändelser öppnar du Zobrazovač udalostí och navigerar till: Applications and Services Logs → Microsoft → Windows → AppxDeployment-Server → Operational

Tips/Råd

För en konsoliderad uppsättning diagnostik kör du även Windows App Certification Kit innan du distribuerar paketet.

Installationsfel

0x80070005 – Åtkomst nekad

Symptom: Add-AppxPackage eller så misslyckas App Installer med felkoden 0x80070005.

Gäller för: Windows 10 och senare, Windows 11

Orsaker och korrigeringar:

Orsak Reparera
Körs som standardanvändare utan utökade privilegier när paketet kräver installation per dator Kör PowerShell som administratör. Om du vill installera för alla användare använder du Add-AppxProvisionedPackage i stället för Add-AppxPackage.
Antivirus- eller säkerhetsprogram som blockerar paketfilen Inaktivera tillfälligt genomsökning i realtid eller lägg till ett undantag för .msix / .msixbundle filen
Paket förberett för en annan användare och inte distribuerat Använd Add-AppxProvisionedPackage för att etablera för alla användare
ACL:er för filsystem som blockerar läsåtkomst till paketet Kontrollera behörigheter för paketfilen med icacls– bevilja läsbehörighet till installationsanvändaren

Paketinstallationen blockerades eftersom appen används

Symptom: Uppdateringen eller ominstallationen misslyckas med ett fel som anger att paketet används. I Zobrazovač udalostí ser du att distributionsåtgärden avvisades.

Gäller för: Windows 10 och senare, Windows 11

Åtgärda: Stäng alla instanser som körs av appen innan du uppdaterar. Om appen är en bakgrundstjänst eller om en bakgrundsaktivitet har registrerats kan du också behöva avsluta dem:

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

För företagsdistributioner bör du överväga att schemalägga uppdateringar under underhållsperioder med hjälp av Intune eller Configuration Manager.

Matchningsfel för MinVersion eller arkitektur

Symptom: Installationen misslyckas med ett fel som "Det gick inte att installera paketet eftersom det inte är kompatibelt med den här versionen av Windows" eller "Paketet gäller inte för den här datorn".

Applies to: Windows 10 och senare

Orsaker och korrigeringar:

Orsak Reparera
Paketet MinVersion i manifestet är högre än os-versionen Skapa ett separat paket som riktar sig till den installerade os-versionen eller uppdatera enheten
Arkitekturmatchningsfel (t.ex. arm64-paket på x64-enhet) Skapa och distribuera rätt arkitekturvariant. använda ett paket (.msixbundle) för att hantera flera arkitekturer från en fil
Paketet riktar sig mot ett api med endast Windows 11 utan en kompatibilitetskontroll Lägg till en TargetDeviceFamily inmatning för både Windows 10 och Windows 11, eller skydda API-anropet med en versionskontroll vid körning

Anmärkning

Använd .msixbundle filer när du distribuerar till miljöer med blandad arkitektur. Ett paket innehåller paket för flera arkitekturer och Windows väljer rätt vid installationen.

Add-AppxPackage lyckas men appen saknas på Start-menyn

Symptom: PowerShell rapporterar framgång, men appen visas inte i Start-menyn eller applistan.

Gäller för: Windows 10 och senare, Windows 11

Vanliga orsaker:

  • Installation per användare jämfört med per dator: Add-AppxPackage endast installationer för den aktuella användaren. Om du kör som administratör men förväntar dig appen för en annan användare använder du Add-AppxProvisionedPackage i stället.
  • Paketet har registrerats men rutan är inte nålad: Appen är installerad men Start-menyn har inte uppfriskats. Logga ut och logga in igen eller kontrollera Inställningar → Appar för att bekräfta installationen.
  • Startmenyposten saknas i manifestet: Kontrollera att elementet <Application> i AppxManifest.xml innehåller en VisualElements post med en giltig Square150x150Logo.
  • Konflikt med duplicerat paketfamiljenamn: Om en nyare eller äldre version av appen redan har installerats med samma paketfamiljenamn kan den nya installationen ersätta den tyst. Kontrollera med Get-AppxPackage -Name "YourPackageFamilyName".

Signerings- och certifikatfel

Anmärkning

Detaljerade felkoder och flaggor för SignTool finns i Kända problem och felsökning för SignTool.

Certifikatet är inte betrott (0x800B0109)

Symptom: Installationen misslyckas med felet 0x800B0109 – "En certifikatkedja bearbetas, men avslutas i ett rotcertifikat som inte är betrodd av förtroendeprovidern."

Gäller för: Windows 10 och senare, Windows 11

Orsak: Certifikatet som används för att signera paketet finns inte i enhetens betrodda certifikatarkiv. Detta är vanligt när du använder självsignerade certifikat för utveckling.

Korrigering: Importera signeringscertifikatet till enhetens lokala dator → Trusted People Store (inte det aktuella användararkivet – App Installer kontrollerar endast datorarkivet):

# 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

Viktigt!

Importera inte signeringscertifikat till arkivet Betrodda rotcertifikatutfärdare om inte certifikatet är en rot-CA. Om du importerar ej betrodda självsignerade certifikat försvagas enhetens säkerhetsstatus.

För produktionsappar använder du ett certifikat som utfärdats av en betrodd CA eller Azure Artifact Signing (tidigare Trusted Signing), som kedjar till rotcertifikatutfärdaren för Microsoft identitetsverifiering – betrodd som standard på Windows 10 version 1809 och senare, samt Windows 11.

Skillnad i utgivarens namn (0x8007000B, händelse-ID 150)

Symptom: SignTool misslyckas med 0x8007000B och Zobrazovač udalostí (AppxPackagingOM-driftlogg) visar 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).

Gäller för: Windows 10 och senare, Windows 11

Cause: attributet Publisher i AppxManifest.xml måste exakt matcha subject-namnet för signeringscertifikatet – inklusive alla unika namnfält i samma ordning.

Lösningen

  1. Hämta det exakta ämnesnamnet från certifikatet:

    (Get-Item Cert:\CurrentUser\My\THUMBPRINT).Subject
    # Example output: CN=Contoso, C=US
    
  2. Uppdatera AppxManifest.xml för att matcha exakt:

    <Identity Name="Contoso.MyApp"
              Publisher="CN=Contoso, C=US"
              ... />
    
  3. Paketera om med MakeAppx.exe och signera igen.

Tips/Råd

När du använder Azure Artefaktsignering (tidigare betrodd signering) måste utgivarvärdet i manifestet matcha din verifierade identitet – som finns i Azure-portalen under certifikatprofilens Subject-namn fält.

Fel vid appinstallation och webbleverans

Felmatchning av schemaversion i .appinstaller-filen

Symptom: App Installer kan inte parsa eller bearbeta .appinstaller filen, ofta med ett allmänt fel om en ogiltig fil eller ett schema som inte stöds.

Applies to: Windows 10 och senare (versionsberoende – se tabell)

Cause: Attributet Uri för rotelementet <AppInstaller> anger en schemaversion som den installerade versionen av Windows inte stöder.

Schema-versioner efter Windows version:

Windows-version Lägsta schemaversion som stöds
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 och senare Windows 11 1.3.0.0, 1.4.0.0, 1.5.0.0

Korrigering: Ange schema-URI:n i .appinstaller filen till den lägsta version som ditt operativsystem som stöds minst kräver:

<?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">

Undvik att använda den senaste schemaversionen om du behöver stöd för äldre Windows 10 versioner.

Filer som hanteras med felaktig MIME-typ eller saknad Content-Length-header

Symptom: Appinstallationsprogrammet misslyckas vid installation från en HTTP/HTTPS-slutpunkt. Felet kan vara allmänt, till exempel 0x80072F76 ("Okänt fel") eller "Appinstallationen misslyckades".

Applies to: Windows 10 och senare

Orsak: Webbservern betjänar .msixfilen , .msixbundleeller .appinstaller med ett felaktigt Content-Type huvud eller utelämnar Content-Length rubriken.

Korrigering: Konfigurera webbservern så att den hanterar MSIX-relaterade filer med rätt MIME-typer:

Filtillägg Obligatorisk MIME-typ
.msix application/msix
.msixbundle application/msixbundle
.appinstaller application/appinstaller
.appx application/appx
.appxbundle application/appxbundle

Se också till att varje svar innehåller ett giltigt Content-Length huvud – detta gäller både GET för och HEAD begäranden.

För IIS lägger du till MIME-typmappningar i web.config. För Azure Static Web Apps eller GitHub pages kan MIME-typer för dessa tillägg behöva explicit konfiguration eller en anpassad värdlösning.

Beroenden saknas

Framework-paketet är inte installerat (VCLibs, .NET, Windows App SDK)

Symptom: Appen installeras men kraschar vid start eller installationen misslyckas med ett beroendefel som refererar till ett paketfamiljenamn som Microsoft.VCLibs, Microsoft.WindowsAppRuntime eller Microsoft.NET.Native.

Gäller för: Windows 10 och senare, Windows 11

Vanliga ramverk och var du kan hämta dem:

Ramverk Behövs när Källa
VCLibs (x64/x86/arm64) Appen använder C++-körning Microsoft Store (installeras automatiskt) eller direkt nedladdning
.NET 8 Körmiljö för skrivbord Appen är inriktad på .NET 8 Ingår i Windows App SDK, eller direct download
Windows App SDK (WinAppSDK) Appen använder WinUI 3 eller andra WinAppSDK-API:er Windows App SDK versioner på GitHub

Korrigering för utveckling: När du installerar via Add-AppxPackage lokalt lägger du till parametern -DependencyPackages eller installerar ramverkspaketen först:

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

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

Korrigering för distribution: Om du distribuerar utanför Store ska du inkludera ramverkspaket i .appinstaller filen under <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>

Anmärkning

När du distribuerar via Microsoft Store hämtas och installeras ramverksberoenden automatiskt. Manuell beroendehantering behövs bara för sidoladdning och företagsutplaceringar.

SignTool hittades inte i CI/CD

Symptom: CI/CD-pipeline (GitHub Actions, Azure DevOps) misslyckas med ett fel som 'signtool' is not recognized as an internal or external command eller SignTool.exe: not found.

Applies to: Windows 10 och senare, Windows 11 (signeringsmaskin)

Cause: SignTool är en del av Windows SDK och ingår inte som standard i CI-runner-bilder.

Fixes:

Option 1 – Installera Windows SDK i pipelinen (GitHub Actions):

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

Alternativ 2 – Använd WinApp CLI (enklast för MSIX-signering):

- 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 – Använd Azure artefaktsignering (rekommenderas för 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

Anmärkning

Åtgärden GitHub heter azure/trusted-signing-action (det tidigare tjänstnamnet). Detta är den officiella åtgärden oavsett omprofilering till Artefaktsignering.

En fullständig genomgång av konfigurationen av CI/ CD-signering finns i Guiden Signera ditt MSIX-paket – från slutpunkt till slutpunkt.

Körnings- och virtualiseringsbeteende

MSIX-paket körs i en lättviktsappcontainer. Vissa beteenden som verkar vara buggar är faktiskt avsiktliga – containern fångar upp fil- och registeråtgärder för att skydda resten av systemet.

Varför filskrivningar verkar försvinna (omdirigering av VFS-fil)

Symptom: Appen skriver en fil till en sökväg som C:\Program Files\MyApp\config.ini vid körning, men filen visas inte där. Appen läser tillbaka värdet korrekt, men andra processer eller användare ser det inte.

Gäller för: Windows 10 och senare, Windows 11

Förklaring: MSIX använder omdirigering av virtuellt filsystem (VFS). Skrivningar till skyddade systemsökvägar omdirigeras tyst till en container per användare:

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

Detta är avsiktligt – det hindrar MSIX-appar från att ändra delade systemplatser, vilket stöder ren avinstallation.

Alternativ:

  • Använd appdatamappar i stället: Skriv till ApplicationData.Current.LocalFolder (WinRT) eller %LocalAppData%\Packages\<PFN>\LocalState\ för data per användare som ska sparas.
  • Använda AppData\Roaming för data som ska flyttas mellan enheter.
  • Granska VFS-containern för att se omdirigerade filer: %LocalAppData%\Packages\<PackageFamilyName>\LocalCache\

Mer information om vilka sökvägar som virtualiseras finns i Felsöka körningsproblem i en MSIX-container.

Varför registerskrivningar verkar försvinna (registervirtualisering)

Symptom: Appen skriver till HKEY_LOCAL_MACHINE\Software\MyApp\ vid körning, men värdet är inte synligt för andra processer eller kvarstår efter en ominstallation.

Gäller för: Windows 10 och senare, Windows 11

Förklaring: MSIX fångar upp skrivningar till HKLM\Software och omdirigerar dem till en registerdatafil per paket som är isolerad från resten av systemet. Vid avinstallation tas hive bort.

Alternativ:

  • Skriv inställningar per användare till HKEY_CURRENT_USER\Software\<AppName> – dessa virtualiseras inte och bevaras.
  • Använd API:erna Windows ApplicationData för lagring av strukturerade inställningar.
  • Deklarera registerposter som måste delas mellan användare eller processer i AppxManifest.xml med hjälp av mekanismen<Extensions> / <com:Extension>.

En djupare titt på MSIX-containerbeteendet finns i Förstå hur paketerade skrivbordsappar körs på Windows.

Windows 10 MSIX-begränsningar

Vissa MSIX-funktioner kräver Windows 11 eller en specifik Windows 10 version. Om du distribuerar till Windows 10 enheter bör du vara medveten om följande.

Funktioner som kräver Windows 10 version 2004 (version 19041) eller senare

Feature Lägsta version
Schema för automatisk uppdatering 2021 (ShowPrompt, UpdateBlocksActivation) Windows 10 2004 (19041)
Tvingande av paketintegritet (uap10:PackageIntegrity) Windows 10 2004 (19041)
Automatisk reparation av App Installer Windows 10 2004 (19041)
Ingen separat inställning för sideloading av betrodda appinstallationer. Se Aktivera din enhet för utveckling för aktuella krav. Windows 10 2004 (19041)

Funktioner som kräver Windows 11

Feature Notes
Begränsad paketidentitet utan komplett paketering Kräver Windows 11
MSIX-stöd för opackade appar med extern platsangivelse (fullständigt plattformsstöd) Vissa API:er förbättrades i Windows 11
Förbättrad MSIX-installationsprestanda per dator Windows 11 optimeringar

Windows 10 enheter som är äldre än version 1709

MSIX stöds inte internt på Windows 10 versioner före 1709 (Fall Creators Update). Om du vill distribuera MSIX-paket till dessa enheter använder du MSIX Core, som ger ett kompatibilitetslager för Windows 10 versioner på nednivå.

Manifesttillägg

Vissa AppxManifest.xml namnområdestillägg är endast Windows 11. Om du deklarerar dem på ett paket som är inriktat på Windows 10 kan schemaverifieringen misslyckas under paketeringen eller avvisas under installationen. Kontrollera schemareferensen för apppaketmanifestet för de MinOSVersion som anges för varje tillägg.

Felsökningstips

Om du vill kontrollera vilka MSIX-funktioner som är tillgängliga på en specifik Windows 10 version kontrollerar du sidan MSIX-funktioner och plattformar som stöds, som listar funktionstillgänglighet efter operativsystemversion.