Přehled balení

Balení definuje, jak se aplikace instaluje, aktualizuje a integruje s Windows. Aplikace WinUI 3 jsou ve výchozím nastavení zabalené, zatímco mnoho desktopových aplikací, jako jsou tradiční aplikace Win32, běží rozbalené. Volba mezi zabalenou nebo rozbalenou aplikací má vliv na funkce, které můžete použít, model nasazení, na který spoléháte, a celkové prostředí, které zákazníci získají.

Poznámka:

Vytváříte novou aplikaci WinUI 3? Už jste ve výchozím nastavení zabalení. Níže uvedené pokyny jsou nejrelevantnější pro vývojáře, kteří potřebují explicitní volbu – obvykle při přenosu existující aplikace, nasazení do podnikových počítačů nebo přidání Windows funkcí do aplikace, která nebyla původně zabalená.

Proč je důležité balení aplikací

Zabalené aplikace využívají čistý instalační model, automatické aktualizace a přístup k funkcím Windows, které vyžadují identitu balíčku – včetně úloh na pozadí, oznámení, rozšíření místní nabídky, sdílení cílů a dalších bodů rozšiřitelnosti. Balení také pomáhá zajistit čistější nasazení, spolehlivé aktualizace a zjednodušenou distribuci prostřednictvím kanálů, jako jsou Microsoft Store a nástroje podnikového nasazení.

Funkce, které vyžadují identitu balíčku

Mnoho funkcí systému Windows funguje pouze v aplikacích, které mají identitu balíčku aplikace, a to buď pomocí úplného balíčku MSIX, nebo balíčku s externím umístěním (Sparse packaging). Mezi příklady patří úlohy na pozadí, push notifikace, cíle pro sdílení, vlastní rozšíření kontextové nabídky, přidružení typů souborů a protokolů založená na manifestu a rozhraní API Windows AI.

Úplný seznam najdete v tématu Funkce, které vyžadují identitu balíčku.

Návod

Pokud jste rozbalili a narazili na chyby E_ILLEGAL_METHOD_CALL nebo APPMODEL_ERROR_NO_PACKAGE při volání rozhraní API Windows, je to požadavek na identitu balíčku. Podívejte se na balení s externím umístěním (Sparse balení) jako na nejjednodušší řešení s nejnižším odporem.

Chcete-li zjistit za běhu, zda váš proces obsahuje identitu balíčku, použijte GetCurrentPackageFullName. Podívejte se na Je toto zabalený proces? na blogu Inside MSIX, kde najdete referenční ukázky pro C++ a C#.

Stručný přehled balení modelů

Model Identita balíčku Instalátor Vhodné pro Store Nejvhodnější pro
Zabalené (MSIX) ✅ Ano MsiX nahrazuje instalační program. ✅ Ano (odeslání MSIX) Nové aplikace, publikování ve Storu, enterprise MDM
Balení s umístěním mimo standardní prostor ✅ Ano Váš stávající instalační program ✅ Ano (odeslání MSI/EXE) Existující aplikace s vlastním instalačním programem, nezávislí výrobci softwaru
Nebalené ❌ Ne Instalační program MSI nebo EXE (také: XCopy nebo skript pro distribuci mimo úložiště) ✅ Ano (odeslání MSI/EXE – vyžaduje instalační program MSI nebo EXE s podporou tiché instalace). Široká distribuce Win32, interní nástroje

Zabalené aplikace (MSIX)

Zabalené aplikace používají MSIX a mají identitu package, která se vyžaduje pro mnoho Windows bodů rozšiřitelnosti. Identita balíčku umožňuje Windows spolehlivě identifikovat volajícího rozhraní API platformy, což je důvod, proč na nich tyto funkce závisejí.

  • Zabalené aplikace se obvykle spouštějí v jednoduchém kontejneru aplikací s virtualizací systému souborů a registru (viz AppContainer pro starší aplikace a aplikace MSIX AppContainer).
  • Aplikace je také možné nakonfigurovat tak, aby se v kontejneru aplikací nespustí v případě potřeby.
  • MSIX se používá k balení i instalaci (viz Co je MSIX?).

Balení s externím umístěním (řídké balení)

Balíčky s externím umístěním (označované také jako řídké balíčky) umožňují zaregistrovat malý balíček identity vedle vaší stávající aplikace — bez změny vašeho instalačního programu, umístění binárního souboru nebo procesu aktualizace. Řešení bylo představeno ve verzi Windows 10 2004 (build 19041).

Ideální řešení pro stávající aplikace Win32/WPF (Windows Presentation Foundation)/WinForms, které se instalují prostřednictvím vlastního instalačního balíčku (NSIS, WiX, InstallShield atd.) a neplánují přechod na MSIX. Zaregistrujete jednoduchý balíček identity, binární soubory zůstanou tam, kde jsou, a odemknete úplnou sadu funkcí Windows s identitou balíčku.

Schopnost MSIX Externí umístění
Nahradí instalační program. Ano Ne
Binární soubory uvnitř balíčku Ano Ne (externí)
Vhodné pro Store Ano (odeslání MSIX) Ano (odeslání MSI/EXE)
Identita balíčku Ano Ano
Mechanismus aktualizace Aktualizace MSIX Váš stávající mechanismus

Úplný návod: Udělení identity balíčku zabalením s externím umístěním

Rozbalené aplikace

Rozbalené aplikace nepoužívají MSIX a nemají identitu balíčku, což znamená, že nemají přístup k výše uvedeným funkcím.

  • Zůstávají plně neomezené z hlediska rozhraní API, přístupu k systému souborů, přístupu k registru, zvýšení oprávnění a modelu procesu.
  • Instalace a aktualizace závisí na .exenasazení , .msivlastních instalačních programů, ClickOnce nebo xcopy.

Před rozhodnutím používat nebalenou verzi zkontrolujte výše uvedenou tabulku funkcí podle vašeho plánu. Pokud jsou oznámení, úlohy na pozadí nebo AI rozhraní API na obzoru, zvažte zahájení s balíčkovými řešeními.

Zvolit podle scénáře

Scénář Doporučený model Podrobnosti
Nezávislý vývojář publikující na Microsoft Store Doporučené zabalení (MSIX) MsiX je doporučená cesta – umožňuje aktualizace spravované storem, rozdílové stahování a čistou odinstalaci. Aplikace WinUI 3 jsou ve výchozím nastavení zabalené. Podepisování kódu se zpracovává zdarma ve Storu. Distribuujte balíčkovanou aplikaci

Aplikace Win32 s existujícím instalačním programem MSI nebo EXE mohou také publikovat do Storu prostřednictvím cesty odeslání MSI/EXE, ale Store nenasdílí aktualizace stávajícím uživatelům – aktualizace musí být zpracovány aplikací nebo instalačním programem.
Podniková aplikace nasazená prostřednictvím Intune nebo Správce konfigurace Zabalené nebo externí umístění pro existující instalační programy Nové aplikace by měly používat MSIX. Existující aplikace s vlastním instalačním programem můžou používat balení s externím umístěním. Podepisování kódu: použijte samopodepsaný certifikát (důvěryhodný prostřednictvím Intune, zásad skupiny nebo Správce konfigurace) nebo Azure Artifacts Signing (dříve Trusted Signing). → Nasazení zabalených aplikací
ISV distribuce přímé stažení s vlastním instalátorem Balení s vnějším umístěním Zaregistrujte balíček zjednodušené identity společně s existujícím instalačním programem. Podepisování kódu: Pro distribuci, která není úložištěm, se vyžaduje důvěryhodný certifikát certifikační autority. Podepisování artefaktů Azure (dříve Důvěryhodné podepisování) je doporučená možnost s nižšími náklady. → Identita balíčku grantu

Případně odešlete existující instalační program do Storu prostřednictvím cesty pro odeslání MSI/EXE.
Interní nástroj nebo vývojářský nástroj Nebalené Nejjednodušší sestavení a nasazení Windows App SDK funguje přes NuGet, ale některé funkce nebudou dostupné.

Návod

Požadavky na podepisování kódu a náklady se liší podle distribuční cesty. Úplný rozpis možností najdete v tématu Možnosti podepisování kódu pro vývojáře Windows aplikací.

Závislé na frameworku vs. samostatné nasazení

Nezávisle na modelu balení si aplikace, které používají Windows App SDK, volí, jak budou přenášet své závislosti modulu runtime: závislé na frameworku (modul runtime Windows App SDK je nainstalován v počítači uživatele) nebo samostatné (všechny binární soubory Windows App SDK jsou dodávány spolu s vaší aplikací). Tato volba je nezávislá na balení.

Úplné porovnání a pokyny k nasazení najdete v přehledu nasazení Windows App SDK.

Začněte s MSIX.

Pokud vytváříte desktopovou aplikaci Win32 (někdy označovanou jako desktopová aplikace classic desktopová aplikace) nebo .NET aplikace , včetně Windows Presentation Foundation (WPF (Windows Presentation Foundation)) a model Windows Forms (WinForms), můžete aplikaci zabalit a nasadit pomocí MSIX.

Migrace na MSIX ze starších instalačních programů

Pokud vaše aplikace aktuálně používá starší verzi instalačního programu, můžete migrovat na MSIX a získat čistou instalaci/odinstalaci, automatické aktualizace, distribuci Storu a identitu balíčku. Cesta migrace závisí na vaší aktuální technologii instalačního programu a na tom, jestli máte přístup ke zdrojovému kódu.

Aktuální instalační program Doporučená cesta migrace Vyžaduje se zdrojový kód?
MSI (instalační program Windows) Pomocí nástroje MSIX Packaging Tool převeďte MSI přímo na MSIX. Zpracovává většinu vzorů MSI včetně vlastních akcí. Ne
ClickOnce (.NET) Pomocí balicího projektu MSIX ve Visual Studiu znovu sestavte ze zdrojového kódu. Automatickou aktualizaci ClickOnce je možné nahradit aktualizacemi Ze Storu nebo Instalačním programem aplikací. Ano
InstallShield / Rozšířený instalační program Pomocí nástroje MSIX Packaging Tool zachyťte instalaci na čistém virtuálním počítači. Složité vlastní akce můžou vyžadovat ruční opravu v Editoru balíčků. Ne
Inno Setup / NSIS Použijte pracovní postup zachycení s využitím virtuálního počítače v nástroji MSIX Packaging Tool. Spusťte instalační program EXE v čistém prostředí nástroje. Ne
App-V (virtuální balíčky) Převeďte přímo pomocí nástroje MSIX Packaging Tool – podporuje balíčky App-V 5.x jako vstup. Ne
MSIX s potřebnými úpravami K použití oprav modulu runtime (přesměrování souboru nebo registru) beze změny kódu aplikace použijte architekturu podpory balíčků . Ne

Návod

U aplikací, které mají složité instalátory s ovladači jádra, službami spuštěnými jako SYSTEM nebo registracemi COM platnými pro celý počítač, jež MSIX nepodporuje, zvažte MSIX s externím umístěním (balíček s externím umístěním). To poskytuje identitu balíčku pro funkce Windows při použití tradičního instalačního programu pro komponenty, které vyžadují zvýšený přístup. Viz Udělení identity balíčku zabalením s externím umístěním.

Klíčové aspekty

  • Testování na čistém virtuálním počítači – Nástroj MSIX Packaging zaznamenává všechny změny během instalace. Spusťte ho na čisté bitové kopii systému Windows, abyste nezachytili nesouvisející systémové změny.
  • Architektura podpory balíčků – Pokud má převedená aplikace problémy s modulem runtime (předpoklady cesty k souboru, zápisy registru do HKLM), architektura podpory balíčků je dokáže opravit beze změny zdroje.
  • Souběžný se starším instalačním programem – Verzi MSIX můžete nasadit společně s starší verzí instalačního programu během přechodu. Naplánujte explicitní nastavení nebo migraci dat (například při prvním spuštění importu), protože identita balíčku a umístění úložiště se liší mezi instalacemi MSIX a MSI/EXE.

Další instalační technologie