Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze handleiding worden de meest voorkomende MSIX-fouten behandeld tijdens de installatie, ondertekening, levering van app-installatieprogramma's, ontbrekende afhankelijkheden en runtimegedrag. Elke sectie bevat het symptoom, de hoofdoorzaak en de oplossing.
Voor een volledig logboek met implementatiegebeurtenissen opent u Logboeken en gaat u naar: Applications and Services Logs → Microsoft → Windows → AppxDeployment-Server → Operational
Aanbeveling
Voer voor een geconsolideerde set diagnostische gegevens ook Windows-app Certification Kit uit voordat u uw pakket distribueert.
Installatiefouten
0x80070005 — Toegang geweigerd
Symptoom: Add-AppxPackage of app-installatieprogramma mislukt met foutcode 0x80070005.
Van toepassing op: Windows 10 en hoger, Windows 11
Oorzaken en oplossingen:
| Oorzaak | Repareren |
|---|---|
| Uitvoeren als een standaardgebruiker zonder elevatie wanneer de installatie van het pakket per machine vereist is | Voer PowerShell uit als administrator. Om te installeren voor alle gebruikers, gebruikt u Add-AppxProvisionedPackage in plaats van Add-AppxPackage. |
| Antivirus- of beveiligingssoftware die het pakketbestand blokkeert | Scannen in realtime tijdelijk uitschakelen of een uitsluiting voor het .msix / .msixbundle bestand toevoegen |
| Pakket voor een andere gebruiker en niet geprovisioneerd | Gebruiken Add-AppxProvisionedPackage om in te richten voor alle gebruikers |
| Bestandssysteem-ACL's blokkeren leestoegang tot het pakket | Controleer de machtigingen voor het pakketbestand met icacls; geef leestoegang aan de gebruiker die installeert |
Installatie van het pakket is geblokkeerd omdat de app in gebruik is
Symptoom: Bijwerken of opnieuw installeren mislukt met een fout die aangeeft dat het pakket wordt gebruikt. In Logboeken ziet u dat de implementatiebewerking is geweigerd.
Van toepassing op: Windows 10 en later, Windows 11
Oplossing: Sluit alle actieve exemplaren van de app voordat u deze bijwerkt. Als de app een achtergrondservice is of een achtergrondtaak heeft geregistreerd, moet u deze mogelijk ook beëindigen:
Get-Process -Name "MyApp" | Stop-Process -Force
Add-AppxPackage -Path .\updated-app.msix
Voor bedrijfsimplementaties kunt u overwegen om updates te plannen tijdens onderhoudsvensters met behulp van Intune of Configuration Manager.
MinVersion of architectuur komt niet overeen
Symptom: De installatie mislukt met een fout zoals 'Het pakket kan niet worden geïnstalleerd omdat het niet compatibel is met deze versie van Windows' of 'Het pakket is niet van toepassing op deze computer'.
Van toepassing op: Windows 10 en hoger
Oorzaken en oplossingen:
| Oorzaak | Repareren |
|---|---|
Pakket MinVersion in het manifest is hoger dan de versie van het besturingssysteem |
Bouw een afzonderlijk pakket dat gericht is op de geïnstalleerde versie van het besturingssysteem of werk het apparaat bij |
| Architectuur komt niet overeen (bijvoorbeeld arm64-pakket op x64-apparaat) | Bouw en distribueer de juiste architectuurvariant; een bundel (.msixbundle) gebruiken om meerdere architecturen uit één bestand te leveren |
| Het pakket is gericht op een Windows 11-only-API zonder compatibiliteitscontrole | Voeg een vermelding TargetDeviceFamily toe voor zowel Windows 10 als Windows 11, of beveilig de API-aanroep met een versiecontrole tijdens runtime |
Opmerking
Gebruik .msixbundle bestanden bij het distribueren naar omgevingen met gemengde architectuur. Een bundel bevat pakketten voor meerdere architecturen en Windows het juiste pakket selecteert tijdens de installatie.
Add-AppxPackage slaagt, maar de app ontbreekt in het menu Start
Symptoom: PowerShell rapporteert dat de app is geslaagd, maar de app wordt niet weergegeven in het menu Start of in de lijst met apps.
Van toepassing op: Windows 10 en hoger, Windows 11
Veelvoorkomende oorzaken:
-
Installatie per gebruiker versus per computer:
Add-AppxPackageinstalleert alleen voor de huidige gebruiker. Als u als beheerder werkt, maar de app voor een andere gebruiker verwacht, gebruikt uAdd-AppxProvisionedPackagein plaats daarvan. - Pakket geregistreerd maar tegel niet vastgezet: de app is geïnstalleerd, maar het startmenu is nog niet bijgewerkt. Meld u af en weer aan of controleer Instellingen → Apps om de installatie te bevestigen.
-
Ontbrekende Startmenu-vermelding in het manifest: Controleer of het
<Application>-element inAppxManifest.xmleenVisualElements-vermelding met een geldigSquare150x150Logobevat. -
Dubbele pakketfamilienaamconflict: Als er al een nieuwere of oudere versie van de app is geïnstalleerd met dezelfde pakketfamilienaam, kan de nieuwe installatie deze stilletjes vervangen. Neem contact op met
Get-AppxPackage -Name "YourPackageFamilyName".
Fouten bij ondertekening en certificaat
Opmerking
Zie Bekende problemen en probleemoplossing voor SignTool voor gedetailleerde SignTool-foutcodes en vlaggen.
Certificaat niet vertrouwd (0x800B0109)
Symptoom: de installatie mislukt met een fout 0x800B0109 : 'Een certificaatketen is verwerkt, maar beëindigd in een basiscertificaat dat niet wordt vertrouwd door de vertrouwensprovider'.
Van toepassing op: Windows 10 en hoger, Windows 11
Oorzaak: Het certificaat dat wordt gebruikt om het pakket te ondertekenen, bevindt zich niet in de vertrouwde certificaatarchieven van het apparaat. Dit is gebruikelijk bij het gebruik van zelfondertekende certificaten voor ontwikkeling.
Oplossing: Importeer het handtekeningcertificaat in de lokale computer van het apparaat → archief vertrouwde personen (niet het huidige gebruikersarchief: app-installatieprogramma controleert alleen het computerarchief):
# 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
Belangrijk
Importeer ondertekeningscertificaten niet in het archief vertrouwde basiscertificeringsinstanties , tenzij het certificaat een basis-CA is. Als u niet-vertrouwde zelfondertekende certificaten importeert, verzwakt het beveiligingspostuur van het apparaat.
Gebruik voor productie-apps een certificaat dat is uitgegeven door een vertrouwde CA of Azure Artifact Signing (voorheen Vertrouwde ondertekening), die is gekoppeld aan de Microsoft Basiscertificeringsinstantie voor identiteitsverificatie, die standaard wordt vertrouwd op Windows 10 versie 1809 en hoger, Windows 11.
Publisher naam komt niet overeen (0x8007000B, gebeurtenis-id 150)
Symptom: SignTool mislukt met 0x8007000B en Logboeken (Operationeel logboek AppxPackagingOM) toont 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).
Van toepassing op: Windows 10 en hoger, Windows 11
Cause: Het kenmerk Publisher in AppxManifest.xml moet exact overeenkomen met de subjectnaam van het handtekeningcertificaat, inclusief alle gedistingeerde naamvelden in dezelfde volgorde.
Herstel:
Haal de exacte onderwerpnaam op uit het certificaat:
(Get-Item Cert:\CurrentUser\My\THUMBPRINT).Subject # Example output: CN=Contoso, C=USWerk
AppxManifest.xmlbij zodat deze exact overeenkomt:<Identity Name="Contoso.MyApp" Publisher="CN=Contoso, C=US" ... />Opnieuw verpakken met
MakeAppx.exeen opnieuw ondertekenen.
Aanbeveling
Wanneer u Azure Artefactondertekening (voorheen Vertrouwde ondertekening) gebruikt, moet de waarde van de uitgever in uw manifest overeenkomen met uw geverifieerde identiteit, te vinden in de Azure-portal onder het veld Subjectnaam van uw certificaatprofiel.
App Installer- en webleveringsfouten
Schemaversie komt niet overeen in het .appinstaller-bestand
Symptoom: Het app-installatieprogramma kan het .appinstaller bestand niet parseren of verwerken, vaak met een algemene fout over een ongeldig bestand of een niet-ondersteund schema.
Van toepassing op: Windows 10 en later (versieafhankelijk — zie tabel)
Cause: Het kenmerk Uri van het hoofdelement <AppInstaller> geeft een schemaversie op die niet wordt ondersteund door de geïnstalleerde versie van Windows.
Schema-versies per Windows-versie:
| Windows versie | Minimaal ondersteunde schemaversie |
|---|---|
| Windows 10 versie 1709 | 1.0.0.0 |
| Windows 10 versie 1803 | 1.1.0.0 |
| Windows 10 versie 1809 | 1.2.0.0 |
| Windows 10 versie 1903 en hoger Windows 11 | 1.3.0.0, 1.4.0.0, 1.5.0.0 |
Oplossing: Stel de schema-URI in uw .appinstaller bestand in op de minimale versie die vereist is voor de laagst ondersteunde versie van uw besturingssysteem.
<?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">
Vermijd het gebruik van de nieuwste schemaversie als u oudere Windows 10 versies moet ondersteunen.
Bestanden die worden geleverd met een onjuist MIME-type of ontbrekende inhoudslengte
Symptoom: App Installer mislukt bij het installeren vanaf een HTTP/HTTPS-eindpunt. De fout kan algemeen zijn, zoals 0x80072F76 ('Onbekende fout') of 'App-installatie is mislukt'.
Van toepassing op: Windows 10 en hoger
Oorzaak: De webserver dient het .msix, .msixbundle of .appinstaller bestand met een onjuiste Content-Type header, of laat de Content-Length header weg.
Oplossing: Configureer uw webserver voor MSIX-gerelateerde bestanden met de juiste MIME-typen:
| Bestandsextensie | Vereist MIME-type |
|---|---|
.msix |
application/msix |
.msixbundle |
application/msixbundle |
.appinstaller |
application/appinstaller |
.appx |
application/appx |
.appxbundle |
application/appxbundle |
Zorg er ook voor dat elk antwoord een geldige Content-Length header bevat. Dit geldt voor zowel als GETHEAD aanvragen.
Voor IIS voegt u MIME-typetoewijzingen toe in web.config. Voor Azure Static Web Apps of GitHub Pages hebben MIME-typen voor deze extensies mogelijk expliciete configuratie of een aangepaste hostingoplossing nodig.
Ontbrekende afhankelijkheden
Framework-pakket niet geïnstalleerd (VCLibs, .NET, Windows App SDK)
Symptom: de app wordt geïnstalleerd, maar loopt vast bij het starten of de installatie mislukt met een afhankelijkheidsfout die verwijst naar een familienaam van een pakket, zoals Microsoft.VCLibs, Microsoft.WindowsAppRuntime of Microsoft.NET.Native.
Van toepassing op: Windows 10 en hoger, Windows 11
Algemene frameworks en waar u ze kunt ophalen:
| Raamwerk | Nodig wanneer | bron |
|---|---|---|
| VCLibs (x64/x86/arm64) | App maakt gebruik van C++ runtime | Microsoft Store (automatisch geïnstalleerd) of directe download |
| .NET 8 Desktop Runtime | App richt zich op .NET 8 | Opgenomen in Windows App SDK; of direct download |
| Windows App SDK (WinAppSDK) | App maakt gebruik van WinUI 3 of andere WinAppSDK-API's | Windows App SDK-versies op GitHub |
Oplossing voor ontwikkeling: Wanneer u lokaal installeert via Add-AppxPackage, voeg eerst de -DependencyPackages parameter toe of installeer eerst de frameworkpakketten.
# Install VCLibs dependency first
Add-AppxPackage -Path .\Microsoft.VCLibs.x64.14.00.Desktop.appx
# Then install your app
Add-AppxPackage -Path .\MyApp.msix
Oplossing voor distributie: als u buiten de Store distribueert, neemt u frameworkpakketten op in uw .appinstaller bestand onder <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>
Opmerking
Wanneer u distribueert via de Microsoft Store, worden frameworkafhankelijkheden automatisch gedownload en geïnstalleerd. Handmatig afhankelijkheidsbeheer is alleen nodig voor sideloading en bedrijfsimplementaties.
SignTool is niet gevonden in CI/CD
Symptom: CI/CD-pijplijn (GitHub Actions, Azure DevOps) mislukt met een fout zoals 'signtool' is not recognized as an internal or external command of SignTool.exe: not found.
Van toepassing op: Windows 10 en hoger, Windows 11 (signing machine)
Cause: SignTool maakt deel uit van de Windows SDK en is niet standaard opgenomen in standaard-CI-runner-installatiekopieën.
Fixes:
Option 1: installeer Windows SDK in de pijplijn (GitHub Actions):
- name: Install Windows SDK
run: |
winget install --id Microsoft.WindowsSDK.10.0.22621 --accept-source-agreements --accept-package-agreements
Optie 2: gebruik de WinApp CLI (eenvoudigst voor MSIX-ondertekening):
- 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: gebruik Azure-ondertekening van artefacten (aanbevolen voor productie):
- 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
Opmerking
De GitHub-actie heet azure/trusted-signing-action (de voormalige servicenaam). Dit is de officiële actie, ongeacht de rebranding naar Artefact Signing.
Zie Uw MSIX-pakket ondertekenen - end-to-end-handleiding voor een volledig overzicht van de installatie van CI/CD-ondertekening.
Runtime- en virtualisatiegedrag
MSIX-pakketten worden uitgevoerd in een lichtgewicht app-container. Sommige gedragingen die fouten lijken te zijn, zijn eigenlijk standaard: de container onderschept bestands- en registerbewerkingen om de rest van het systeem te beveiligen.
Waarom schrijfbewerkingen lijken te verdwijnen (VFS-bestandsomleiding)
Symptoom: De app schrijft een bestand naar een pad zoals C:\Program Files\MyApp\config.ini tijdens runtime, maar het bestand wordt daar niet weergegeven. De app leest de waarde correct terug, maar andere processen of gebruikers zien deze niet.
Van toepassing op: Windows 10 en hoger, Windows 11
Uitleg: MSIX maakt gebruik van VFS-omleiding (Virtual File System ). Schrijfbewerkingen naar beveiligde systeempaden worden op de achtergrond omgeleid naar een container per gebruiker:
%LocalAppData%\Packages\<PackageFamilyName>\LocalCache\Local\VFS\
Dit is standaard. Het voorkomt dat MSIX-apps gedeelde systeemlocaties wijzigen, waardoor schone verwijdering wordt ondersteund.
Opties:
-
Gebruik in plaats daarvan app-gegevensmappen: Schrijven naar
ApplicationData.Current.LocalFolder(WinRT) of%LocalAppData%\Packages\<PFN>\LocalState\voor gegevens per gebruiker die moeten blijven bestaan. -
Gebruiken
AppData\Roamingvoor gegevens die tussen apparaten moeten roamen. -
Controleer de VFS-container om omgeleide bestanden te zien:
%LocalAppData%\Packages\<PackageFamilyName>\LocalCache\
Zie Runtimeproblemen in een MSIX-container oplossen voor meer informatie over welke paden worden gevirtualiseerd.
Waarom registerschrijfbewerkingen lijken te verdwijnen (registervirtualisatie)
Symptoom: De app schrijft tijdens runtime naar HKEY_LOCAL_MACHINE\Software\MyApp\ , maar de waarde is niet zichtbaar voor andere processen of overleeft een herinstallatie.
Van toepassing op: Windows 10 en hoger, Windows 11
Uitleg: MSIX onderschept schrijfbewerkingen naar HKLM\Software en leidt ze om naar een registerbestand per pakket dat is geïsoleerd van de rest van het systeem. Bij het deïnstalleren wordt de hive gewist.
Opties:
- Schrijf instellingen per gebruiker naar
HKEY_CURRENT_USER\Software\<AppName>— deze worden niet gevirtualiseerd en blijven behouden. - Gebruik de Windows ApplicationData-API's voor opslag van gestructureerde instellingen.
- Geef registry-items op die gedeeld moeten worden tussen gebruikers of processen met behulp van het
<Extensions>/<com:Extension>-mechanisme inAppxManifest.xml.
Zie Onderstand hoe verpakte bureaublad-apps worden uitgevoerd op Windows voor meer informatie over het gedrag van MSIX-containers.
Windows 10 MSIX-beperkingen
Voor sommige MSIX-functies is Windows 11 of een specifieke Windows 10-versie vereist. Als u implementeert op Windows 10 apparaten, moet u rekening houden met het volgende.
Functies waarvoor Windows 10 versie 2004 (build 19041) of hoger is vereist
| Feature | Minimumversie |
|---|---|
Schema 2021 automatisch bijwerken (ShowPrompt, UpdateBlocksActivation) |
Windows 10 2004 (19041) |
Afdwingen van pakketintegriteit (uap10:PackageIntegrity) |
Windows 10 2004 (19041) |
| Automatisch herstel van App Installer | Windows 10 2004 (19041) |
| Er is geen afzonderlijke sideloading-beleidsknop voor installatie van vertrouwde app-pakketten; zie Uw apparaat inschakelen voor ontwikkeling voor huidige vereisten | Windows 10 2004 (19041) |
Functies waarvoor Windows 11 is vereist
| Feature | Aantekeningen |
|---|---|
| Gedeeltelijke pakketidentiteit zonder volledige pakketstructuur | Vereist Windows 11 |
| MSIX-ondersteuning voor uitgepakte apps met externe locatie (volledige platformondersteuning) | Sommige API's zijn verbeterd in Windows 11 |
| Verbeterde MSIX-installatieprestaties per machine | optimalisaties voor Windows 11 |
Windows 10 apparaten ouder dan versie 1709
MSIX wordt niet systeemeigen ondersteund op Windows 10 versies vóór 1709 (Fall Creators Update). Als u MSIX-pakketten op deze apparaten wilt implementeren, gebruikt u MSIX Core, die een compatibiliteitslaag biedt voor downlevel Windows 10 versies.
Manifestextensies
Sommige AppxManifest.xml naamruimteextensies zijn alleen Windows 11. Het declareren van deze pakketten op een pakket dat is gericht op Windows 10 kan tijdens het verpakken mislukken of worden geweigerd tijdens de installatie. Controleer de schemaverwijzing voor het app-pakketmanifest voor de extensies die bij MinOSVersion zijn vermeld.
Foutopsporingstip
Als u wilt controleren welke MSIX-functies beschikbaar zijn op een specifieke Windows 10 build, controleert u de MSIX-functies en ondersteunde platforms pagina, waarin de beschikbaarheid van functies per besturingssysteemversie wordt vermeld.
Gerelateerde bronnen
- Een MSIX-pakketoverzicht ondertekenen
- Uw MSIX-pakket ondertekenen - end-to-end-handleiding
- Bekende problemen en probleemoplossing voor SignTool
- Problemen met het app-installatieprogramma oplossen
- Runtimeproblemen in een MSIX-container oplossen
- Probleemoplossing bij het verpakken, implementeren en opvragen van Windows-apps