Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato příručka popisuje nejběžnější chyby MSIX při instalaci, podepisování, doručování instalačního programu aplikací, chybějící závislosti a chování modulu runtime. Každá část obsahuje příznaky, původní příčinu a řešení.
Pokud chcete získat úplný protokol událostí nasazení, otevřete Prohlížeč událostí a přejděte na: Aplikace a protokoly služeb → Microsoft → Windows → AppxDeployment-Server → Provozní
Návod
Pro konsolidovanou sadu diagnostiky před distribucí balíčku spusťte také aplikace pro Windows Certifikační sadu.
Chyby instalace
0x80070005 – Přístup byl odepřen
Příznak: Add-AppxPackage nebo Instalační program aplikace selže s kódem chyby 0x80070005.
Platí pro: Windows 10 a novější, Windows 11
Příčiny a opravy:
| Příčina | Oprava |
|---|---|
| Spuštění jako standardní uživatel bez zvýšení oprávnění v případech, kdy balíček vyžaduje instalaci na počítač | Spusťte PowerShell jako správce. Chcete-li nainstalovat pro všechny uživatele, použijte Add-AppxProvisionedPackage místo Add-AppxPackage. |
| Antivirový nebo bezpečnostní software blokující soubor balíčku | Dočasně zakažte kontrolu v reálném čase nebo přidejte výjimku pro soubor .msix / .msixbundle |
| Balíček je připravený pro jiného uživatele a není nasazený. | Použijte Add-AppxProvisionedPackage k nastavení pro všechny uživatele. |
| Seznamy ACL systému souborů blokující přístup pro čtení k balíčku | Kontrola oprávnění k souboru balíčku pomocí icacls; udělení přístupu pro čtení instalačnímu uživateli |
Instalace balíčku se zablokovala, protože se aplikace používá
Příznak: Aktualizace nebo opětovné instalace selže s chybou indikující, že se balíček používá. V Prohlížeč událostí vidíte, že operace nasazení byla odmítnuta.
Applies to: Windows 10 a novější verze, Windows 11
Oprava: Před aktualizací zavřete všechny spuštěné instance aplikace. Pokud je aplikace služba na pozadí nebo má zaregistrovanou úlohu na pozadí, možná budete muset tyto úlohy ukončit také:
Get-Process -Name "MyApp" | Stop-Process -Force
Add-AppxPackage -Path .\updated-app.msix
U podnikových nasazení zvažte plánování aktualizací během údržby pomocí Intune nebo Správce konfigurace.
Neshoda minVersion nebo architektury
Symptom: Instalace selže s chybou, například "Balíček nelze nainstalovat, protože není kompatibilní s touto verzí Windows" nebo "Balíček není použitelný pro tento počítač".
Applies to: Windows 10 a novější
Příčiny a opravy:
| Příčina | Oprava |
|---|---|
Balíček MinVersion v manifestu je vyšší než verze operačního systému. |
Vytvoření samostatného balíčku určeného pro nainstalovanou verzi operačního systému nebo aktualizaci zařízení |
| Neshoda architektury (např. balíček arm64 na zařízení x64) | Sestavení a distribuce správné varianty architektury; použití sady (.msixbundle) k poskytování více architektur z jednoho souboru |
| Balíček cílí na rozhraní API jen pro Windows 11 bez kontroly kompatibility. | Přidání položky TargetDeviceFamily pro Windows 10 i Windows 11 nebo ochrana volání rozhraní API pomocí kontroly verze za běhu |
Poznámka:
Používejte soubory .msixbundle při distribuci do prostředí se smíšenými architekturami. Sada obsahuje balíčky pro více architektur a Windows vybere v době instalace správný balíček.
Příkaz Add-AppxPackage proběhl úspěšně, ale aplikace chybí v nabídce Start.
Příznak: PowerShell hlásí úspěch, ale aplikace se nezobrazuje v nabídce Start nebo v seznamu aplikací.
Applies to: Windows 10 a novější, Windows 11
Běžné příčiny:
-
Instalace pro jednotlivé uživatele vs. pro jednotlivé počítače:
Add-AppxPackagenainstaluje pouze pro aktuálního uživatele. Pokud pracujete jako správce, ale potřebujete, aby aplikace byla pro jiného uživatele, použijte místo tohoAdd-AppxProvisionedPackage. - Zaregistrovaný balíček, ale dlaždice není připnutá: Aplikace se nainstaluje, ale nabídka Start se neaktualizuje. Odhlaste se a znovu se přihlaste nebo zkontrolujte nastavení → Aplikace a potvrďte instalaci.
-
Chybějící položka nabídky Start v manifestu: Ověřte, zda element
<Application>vAppxManifest.xmlzahrnuje položkuVisualElementss platnouSquare150x150Logo. -
Konflikt duplicitního názvu rodiny balíčků: Pokud je již nainstalována novější nebo starší verze aplikace se stejným názvem rodiny balíčků, může ji nová instalace bezobslužně nahradit. Obraťte se na
Get-AppxPackage -Name "YourPackageFamilyName".
Chyby podepisování a certifikátu
Poznámka:
Podrobné kódy a příznaky chyb SignTool najdete v tématu Známé problémy a řešení potíží pro SignTool.
Certifikát není důvěryhodný (0x800B0109)
Příznak: Instalace selže s chybou 0x800B0109 – "Řetězec certifikátů byl zpracován, ale ukončen v kořenovém certifikátu, který není důvěryhodný poskytovatelem důvěry".
Applies to: Windows 10 a novější, Windows 11
Příčina: Certifikát použitý k podepsání balíčku není v úložištích důvěryhodných certifikátů zařízení. To je běžné při použití certifikátů podepsaných svým držitelem pro vývoj.
Oprava: Import podpisového certifikátu do místního počítače zařízení → důvěryhodného úložiště osob (nikoli do aktuálního úložiště uživatelů – Instalační služba aplikace kontroluje pouze úložiště počítačů):
# 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
Důležité
Neimportujte podpisové certifikáty do úložiště důvěryhodných kořenových certifikačních autorit , pokud certifikát není kořenovou certifikační autoritou. Import nedůvěryhodných certifikátů podepsaných svým držitelem oslabuje stav zabezpečení zařízení.
V produkčních aplikacích použijte certifikát vydaný důvěryhodnou certifikační autoritou nebo Azure podepisování artefaktů (dříve Důvěryhodné podepisování), který je propojený s kořenovou certifikační autoritou Microsoft pro ověření identity – ve výchozím nastavení důvěryhodný pro Windows 10 verze 1809 a novější a Windows 11.
neshoda názvů Publisher (0x8007000B, ID události 150)
Symptom: SignTool selže s 0x8007000B a Prohlížeč událostí (provozní protokol AppxPackagingOM) zobrazuje 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).
Applies to: Windows 10 a novější, Windows 11
Cause: Atribut Publisher v AppxManifest.xml se musí přesně shodovat s názvem subject name podpisového certifikátu, včetně všech rozlišujích polí názvů ve stejném pořadí.
Oprava:
Získejte přesný název subjektu z certifikátu:
(Get-Item Cert:\CurrentUser\My\THUMBPRINT).Subject # Example output: CN=Contoso, C=USAktualizujte
AppxManifest.xmltak, aby přesně odpovídaly:<Identity Name="Contoso.MyApp" Publisher="CN=Contoso, C=US" ... />Znovu zabalte
MakeAppx.exea znovu podepište.
Návod
Při použití Azure Artifact Signing (dříve Důvěryhodné podepisování) musí hodnota vydavatele ve vašem manifestu odpovídat vaší ověřené identitě — nalézá se v portálu Azure v poli Název subjektu vašeho certifikátového profilu.
Chyby instalačního programu aplikací a doručování webu
Neshoda verzí schématu v souboru .appinstaller
Příznak: Instalační program aplikace nedokáže analyzovat nebo zpracovat .appinstaller soubor, často s obecnou chybou o neplatném souboru nebo nepodporovaném schématu.
Applies to: Windows 10 a novější (závislé na verzi – viz tabulka)
Cause: Atribut Uri kořenového elementu <AppInstaller> určuje verzi schématu, kterou nainstalovaná verze Windows nepodporuje.
verze Schema podle verze Windows:
| verze Windows | Minimální podporovaná verze schématu |
|---|---|
| Windows 10 verze 1709 | 1.0.0.0 |
| Windows 10 verze 1803 | 1.1.0.0 |
| Windows 10 verze 1809 | 1.2.0.0 |
| Windows 10 verze 1903 a novější Windows 11 | 1.3.0.0, 1.4.0.0, 1.5.0.0 |
Oprava: Nastavte identifikátor URI schématu v .appinstaller souboru na minimální verzi, která vyžaduje nejnižší podporovanou verzi operačního systému:
<?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">
Pokud potřebujete podporovat starší verze Windows 10, nepoužívejte nejnovější verzi schématu.
Soubory obsluhované s nesprávným typem MIME nebo chybějící délkou obsahu
Příznak: Instalační program aplikace selže při instalaci z koncového bodu HTTP/HTTPS. Chyba může být obecná, například 0x80072F76 (Neznámá chyba) nebo Instalace aplikace se nezdařila.
Applies to: Windows 10 a novější
Příčina: Webový server obsluhuje .msixsoubor , .msixbundlenebo .appinstaller soubor s nesprávnou Content-Type hlavičkou nebo vynechá hlavičku Content-Length .
Oprava: Nakonfigurujte webový server tak, aby zobrazoval soubory související s MSIX se správnými typy MIME:
| Přípona souboru | Požadovaný typ MIME |
|---|---|
.msix |
application/msix |
.msixbundle |
application/msixbundle |
.appinstaller |
application/appinstaller |
.appx |
application/appx |
.appxbundle |
application/appxbundle |
Také se ujistěte, že každá odpověď obsahuje platnou Content-Length hlavičku – to platí pro obě GET i HEAD požadavky.
V případě služby IIS přidejte mapování typů MIME do web.configsouboru . U Azure Static Web Apps nebo GitHub Pages můžou typy MIME pro tato rozšíření potřebovat explicitní konfiguraci nebo vlastní řešení hostování.
Chybějící závislosti
Balíček architektury není nainstalovaný (VCLibs, .NET, Windows App SDK)
Symptom: Aplikace se úspěšně nainstaluje, ale při spuštění se chybově ukončí nebo instalace selže s chybou závislostí odkazující na název rodiny balíčků, jako je Microsoft.VCLibs, Microsoft.WindowsAppRuntime nebo Microsoft.NET.Native.
Applies to: Windows 10 a novější, Windows 11
Běžné frameworky a kde je získat:
| .NET Framework | Potřeba v případě potřeby | Zdroj |
|---|---|---|
| VCLibs (x64/x86/arm64) | Aplikace používá modul runtime C++ | Microsoft Store (automaticky nainstalované) nebo směrné stahování |
| .NET 8 Desktop Runtime (Pracovní prostředí pro stolní počítače .NET 8) | Aplikace cílí na .NET 8 | Součástí Windows App SDK; nebo směrné stahování |
| Windows App SDK (WinAppSDK) | Aplikace používá rozhraní WinUI 3 nebo jiná rozhraní API WinAppSDK. | Windows App SDK verze na GitHubu |
Oprava pro vývoj: Při místní instalaci Add-AppxPackage přidejte -DependencyPackages parametr nebo nejprve nainstalujte balíčky frameworku:
# Install VCLibs dependency first
Add-AppxPackage -Path .\Microsoft.VCLibs.x64.14.00.Desktop.appx
# Then install your app
Add-AppxPackage -Path .\MyApp.msix
Oprava distribuce: Pokud distribuujte mimo Store, zahrňte do souboru .appinstaller balíčky rozhraní v části <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>
Poznámka:
Při distribuci prostřednictvím Microsoft Store se závislosti architektury automaticky stáhnou a nainstalují. Ruční správa závislostí je nutná pouze pro postranní načtení a podnikové nasazení.
Nástroj SignTool nebyl v CI/CD nalezen.
Symptom: Kanál CI/CD (GitHub Actions, Azure DevOps) selže s chybou, jako je 'signtool' is not recognized as an internal or external command nebo SignTool.exe: not found.
Applies to: Windows 10 a novější, Windows 11 (zařízení pro podepisování)
Cause: SignTool je součástí sady WINDOWS SDK a ve výchozím nastavení není součástí standardních imagí spouštěče CI.
Fixes:
Možnost 1 – Instalace sady Windows SDK v rámci sestavení (GitHub Actions):
- name: Install Windows SDK
run: |
winget install --id Microsoft.WindowsSDK.10.0.22621 --accept-source-agreements --accept-package-agreements
Možnost 2 – Použití rozhraní příkazového řádku WinApp (nejjednodušší pro podepisování MSIX):
- 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 – Použijte Podepisování artefaktů v Azure (doporučeno pro produkční):
- 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
Poznámka:
Akce GitHub má název azure/trusted-signing-action (název bývalé služby). Toto je oficiální postup, navzdory rebrandingu na Artifact Signing.
Úplný návod k nastavení podepisování CI/CD najdete v tématu Podepsání balíčku MSIX – kompletního průvodce.
Chování běhového prostředí a virtualizace
Balíčky MSIX se spouštějí v kontejneru odlehčených aplikací. Některá chování, která se jeví jako chyby, jsou ve skutečnosti navržena – kontejner zachytí operace se soubory a registry, aby chránil zbytek systému.
Proč se zdá, že zápisy souborů zmizí (přesměrování souborů VFS)
Příznak: Aplikace zapíše soubor do cesty, jako je C:\Program Files\MyApp\config.ini za běhu, ale soubor se tam nezobrazí. Aplikace přečte hodnotu správně, ale ostatní procesy nebo uživatelé ji nevidí.
Applies to: Windows 10 a novější, Windows 11
Vysvětlení: MSIX používá přesměrování virtuálního systému souborů (VFS). Zápisy do chráněných systémových cest se bezobslužně přesměrují do kontejneru pro jednotlivé uživatele:
%LocalAppData%\Packages\<PackageFamilyName>\LocalCache\Local\VFS\
To je záměrně – zabraňuje aplikacím MSIX upravovat sdílená systémová umístění a umožňuje čistou odinstalaci.
Možnosti:
-
Místo toho používejte datové složky aplikací: Zapisovat do
ApplicationData.Current.LocalFolder(WinRT) nebo%LocalAppData%\Packages\<PFN>\LocalState\pro uživatelská data, která by měla být zachována. -
Použít
AppData\Roamingpro data, která by se měla nacházet mezi zařízeními. -
Zkontrolujte kontejner VFS a podívejte se na přesměrované soubory:
%LocalAppData%\Packages\<PackageFamilyName>\LocalCache\
Další podrobnosti o tom, jaké cesty jsou virtualizované, najdete v tématu Řešení potíží s modulem runtime v kontejneru MSIX.
Proč se zdá, že zápisy registru zmizí (virtualizace registru)
Příznak: Aplikace zapisuje během běhu do HKEY_LOCAL_MACHINE\Software\MyApp\, ale hodnota není viditelná pro jiné procesy ani nepřežije přeinstalaci.
Applies to: Windows 10 a novější, Windows 11
Vysvětlení: MSIX zachytí zápisy a přesměruje je do podregistru jednotlivých balíčků, který je izolovaný od zbytku systému. Po odinstalaci se úlovek odstraní.
Možnosti:
- Zapisovat uživatelská nastavení do
HKEY_CURRENT_USER\Software\<AppName>— tato nastavení nejsou virtualizovaná a zůstávají zachována. - Pro úložiště strukturovaných nastavení použijte rozhraní API Windows ApplicationData.
- Deklarujte položky registru, které musí být sdíleny mezi uživateli nebo procesy při
AppxManifest.xmlpoužívání<Extensions>/<com:Extension>mechanismu.
Podrobnější informace o chování kontejneru MSIX najdete v tématu Podstatěné fungování zabalených desktopových aplikací na Windows.
omezení Windows 10 MSIX
Některé funkce MSIX vyžadují Windows 11 nebo konkrétní verzi Windows 10. Pokud nasazujete do Windows 10 zařízení, mějte na paměti následující skutečnosti.
Funkce, které vyžadují Windows 10, verze 2004 (build 19041) nebo novější
| funkce | Minimální verze |
|---|---|
Schéma automatické aktualizace 2021 (ShowPrompt, UpdateBlocksActivation) |
Windows 10 2004 (19041) |
Vynucení integrity balíčků (uap10:PackageIntegrity) |
Windows 10 2004 (19041) |
| Automatická oprava instalačního programu aplikace | Windows 10 2004 (19041) |
| Žádný samostatný přepínač zásad sideloadingu pro instalace důvěryhodných balíčků aplikací; viz Povolení zařízení pro vývoj pro aktuální požadavky | Windows 10 2004 (19041) |
Funkce, které vyžadují Windows 11
| funkce | Poznámky |
|---|---|
| Řídká identita balíčku bez úplného balení | Vyžaduje Windows 11 |
| Podpora MSIX pro rozbalené aplikace s externím umístěním (úplná podpora platformy) | Některá rozhraní API se vylepšila v Windows 11 |
| Vylepšený výkon instalace MSIX na počítač | optimalizace Windows 11 |
Windows 10 zařízení starší než verze 1709
MSIX se nativně nepodporuje ve verzích Windows 10 starších než 1709 (Fall Creators Update). Pokud chcete do těchto zařízení nasadit balíčky MSIX, použijte MSIX Core, která poskytuje vrstvu kompatibility pro verze Windows 10 nižší úrovně.
Rozšíření manifestu
Některá rozšíření oboru názvů AppxManifest.xml jsou určena pouze pro Windows 11. Deklarování těchto entit při zaměření na Windows 10 může během balení selhat schema-validaci nebo být zamítnuty během instalace. Projděte si referenční informace ke schématu manifestu balíčku aplikace pro každou příponu MinOSVersion .
Tip ladění
Pokud chcete ověřit, jaké funkce MSIX jsou k dispozici na konkrétním Windows 10 buildu, podívejte se na stránku MSIX a podporovaných platforem, která uvádí dostupnost funkcí podle verze operačního systému.