Csomagolás áttekintése

A Packaging meghatározza az alkalmazás telepítését, frissítését és Windows való integrációját. A WinUI 3-alkalmazások alapértelmezés szerint csomagolva vannak, míg számos asztali alkalmazás, például a hagyományos Win32-alkalmazások csomagolatlanok. A csomagolt vagy csomagolatlan alkalmazások közötti választás hatással van a használható funkciókra, a használt üzemi modellre és az ügyfelek általános élményére.

Megjegyzés:

Új WinUI 3-alkalmazás létrehozása? Az alapértelmezett beállítás szerint ön már csomagolva van. Az alábbi útmutató leginkább azon fejlesztők számára releváns, akiknek explicit döntést kell hozniuk – jellemzően meglévő alkalmazás portolása, nagyvállalati gépeken való üzembe helyezés vagy Windows funkciók hozzáadásakor az eredetileg nem csomagolt alkalmazásokhoz.

Miért fontos az alkalmazáscsomagolás?

A csomagolt alkalmazások tiszta telepítési modellben, automatikus frissítésekben és Windows csomagidentitást igénylő funkciókhoz – például háttérfeladatokhoz, értesítésekhez, helyi menübővítményekhez, megosztási célokhoz és egyéb bővíthetőségi pontokhoz – férhetnek hozzá. A csomagolás emellett segít a tisztább üzembe helyezésben, a megbízható frissítésekben és az egyszerűsített terjesztésben olyan csatornákon keresztül, mint a Microsoft Store és a vállalati üzembehelyezési eszközök.

Csomagidentitást igénylő funkciók

Számos Windows-funkció csak olyan alkalmazásokban működik, amelyek csomagidentitással rendelkeznek, akár teljes MSIX-csomagolással, akár külső helyet használó csomagolással (sparse packaging). Ilyenek például a háttérfeladatok, a leküldéses értesítések, a megosztási célok, az egyéni helyi menükiterjesztések, a jegyzékalapú fájltípus és a protokolltársítások, valamint a Windows AI API-k.

A teljes listát a csomagidentitást igénylő szolgáltatásokban találja.

Jótanács

Ha ki van csomagolva, és E_ILLEGAL_METHOD_CALL vagy APPMODEL_ERROR_NO_PACKAGE hibát tapasztal Windows API-k meghívásakor, ez a csomag identitáskövetelménye. Tekintse meg a külső hellyel rendelkező (szórványos csomagolás) csomagolást a legkevesebb akadályt jelentő megoldásként.

Ha futásidőben szeretné észlelni, hogy a folyamat rendelkezik-e csomagidentitással, használja a következőt GetCurrentPackageFullName: . Lásd : Ez egy csomagolt folyamat? című témakört az Inside MSIX blogon, amely a C++ és c# mintákat ismerteti.

Csomagolási modellek egy pillantással

Modell Csomag identitása Telepítő Jogosult áruház A következőkre alkalmas
Csomagolt (MSIX) ✅ Igen Az MSIX lecseréli a telepítőt ✅ Igen (MSIX-beküldés) Új alkalmazások, Áruházbeli közzététel, vállalati MDM
Csomagolás külső helyen ✅ Igen A meglévő telepítő ✅ Igen (MSI/EXE beküldés) Meglévő alkalmazások saját telepítővel, független szoftverbeszállítókkal (ISV-kkel)
Csomagolatlan ❌ Nem MSI- vagy EXE-telepítő (továbbá: XCopy vagy szkript nem áruházbeli disztribúcióhoz) ✅ Igen (MSI/EXE beküldés – egy MSI- vagy EXE-telepítőt igényel csendes telepítési támogatással) Széles Körű Win32-disztribúció, belső eszközök

Csomagolt alkalmazások (MSIX)

A csomagolt alkalmazások MSIX-et használnak, és package identitással rendelkeznek, amely számos Windows bővíthetőségi ponthoz szükséges. A csomagidentitás lehetővé teszi, hogy Windows megbízhatóan azonosítsa a platform API-k hívóját, ezért ezek a funkciók függnek attól.

  • A csomagolt alkalmazások általában egy egyszerű alkalmazástárolóban futnak fájlrendszerrel és beállításjegyzék-virtualizálással (lásd: AppContainer régebbi alkalmazásokhoz és MSIX AppContainer-alkalmazásokhoz).
  • Az alkalmazások úgy is konfigurálhatók, hogy szükség esetén ne fussanak alkalmazástárolóban.
  • Az MSIX mind a csomagoláshoz, mind a telepítéshez használható (lásd : Mi az MSIX?).

Csomagolás külső helyen (Ritka csomagolás)

A külső hellyel (más néven ritka csomagokkal) rendelkező csomagolás lehetővé teszi, hogy a meglévő alkalmazás mellett egy kis identitáscsomagot is regisztráljon – a telepítő, a bináris helyek vagy a frissítési folyamat módosítása nélkül. Windows 10 2004-es verzióban (19041-es build) vezették be.

Ez az ideális állapot a meglévő Win32/WPF/WinForms-alkalmazások számára, amelyek saját telepítőjükön (NSIS, WiX, InstallShield stb.) keresztül kerülnek forgalomba, és nem szeretnék lecserélni az MSIX-re. Regisztrálhat egy egyszerűsített identitáscsomagot, a bináris fájlok ott maradnak, ahol vannak, és feloldhatja a csomag identitás-kapus Windows funkcióinak teljes készletét.

Képesség MSIX Külső hely
Felváltja a telepítőt Igen No
Bináris fájlok a csomagban Igen Nem (külső)
Jogosult áruház Igen (MSIX-beküldés) Igen (MSI/EXE beküldés)
Csomag identitása Igen Igen
Frissítési mechanizmus MSIX-frissítés A meglévő mechanizmus

Teljes útmutató: Csomagdentitás biztosítása külső helyen lévő csomagolással

Csomagolatlan alkalmazások

A csomagolatlan alkalmazások nem használják az MSIX-et, és nem rendelkeznek csomagadentitással, ami azt jelenti, hogy nem férnek hozzá a fent felsorolt funkciókhoz.

  • Az API-felület, a fájlrendszer-hozzáférés, a beállításjegyzék-hozzáférés, a jogosultságszint-emelés és a folyamatmodell tekintetében teljesen korlátlan maradnak.
  • A telepítés és a frissítések az egyéni .exetelepítőkre.msi, a ClickOnce-ra vagy az xcopy-telepítésre támaszkodnak.

Mielőtt elkötelezi magát a csomagolatlan mellett, ellenőrizze a fent látható funkciók táblázatát a saját ütemterve ellen. Ha az értesítések, a háttérfeladatok vagy az AI API-k a horizonton vannak, érdemes csomagban kezdődést fontolóra venni.

Választás forgatókönyv szerint

Scenario Ajánlott modell Részletek
Indie fejlesztő, aki a Microsoft Store-ba publikál Csomagként (MSIX) ajánlott Az MSIX az ajánlott elérési út — lehetővé teszi a Store által felügyelt frissítéseket, a differenciált letöltéseket és a tiszta eltávolítást. A WinUI 3-alkalmazások alapértelmezés szerint csomagolva vannak. A kódaláírást az Áruház ingyenesen kezeli.Csomagolt alkalmazás terjesztése

A meglévő MSI- vagy EXE-telepítővel rendelkező Win32-alkalmazások az MSI/EXE beküldési útvonalon keresztül is közzétehetik az Áruházban, de az Áruház nem küld le frissítéseket a meglévő felhasználóknak – a frissítéseket az alkalmazásnak vagy a telepítőnek kell kezelnie.
Enterprise alkalmazás Intune vagy Konfigurációkezelő által telepítve Csomagolt vagy külső helyszín a meglévő telepítők számára Az új alkalmazásoknak MSIX-et kell használniuk. A saját telepítővel rendelkező meglévő alkalmazások külső helyen is használhatják a csomagolást. Kód-aláírás: használjon önaláírt tanúsítványt (az Intune-on, csoportházirenden vagy Konfigurációkezelő keresztül megbízható) vagy Azure összetevő-aláírást (korábban megbízható aláírás). → Csomagolt alkalmazások üzembe helyezése
Az ISV közvetlen letöltést biztosít saját telepítővel Csomagolás külső hely megjelöléssel Regisztráljon egy egyszerűsített identitáscsomagot a meglévő telepítő mellett. Kódaláírás: a nem áruházbeli disztribúcióhoz ca-megbízható tanúsítványra van szükség. Azure Összetevő-aláírás (korábban megbízható aláírás) az ajánlott alacsonyabb költségű lehetőség. → Csomag identitásának megadása

Másik lehetőségként küldje el a meglévő telepítőt az Áruházba az MSI/EXE beküldési útvonalon keresztül.
Belső eszköz vagy fejlesztői segédprogram Csomagolatlan Az építés és üzembe helyezés legegyszerűbb módja. A Windows App SDK a NuGeten keresztül működik, de egyes funkciók nem lesznek elérhetők.

Jótanács

A kódaláírási követelmények és a költségek a terjesztési útvonaltól függően változnak. A lehetőségek teljes lebontásához tekintse meg Windows alkalmazásfejlesztők kódaláírási beállításait.

Keretrendszerfüggő és önálló üzembe helyezés

A csomagolási modelltől függetlenül a Windows App SDK használó alkalmazások kiválasztják a futtatókörnyezeti függőségeik átvitelét: keretrendszerfüggő (a Windows App SDK futtatókörnyezet telepítve van a felhasználó gépén) vagy önálló (az alkalmazással együtt Windows App SDK bináris fájlok). Ez a választás a csomagolástól független.

A teljes összehasonlítási és üzembe helyezési útmutatóért tekintse meg a Windows App SDK üzembe helyezés áttekintését.

Ismerkedjen meg az MSIX használatával

Ha asztali Win32-alkalmazást (más néven osztályos asztali alkalmazást) vagy egy .NET-alkalmazást készít – beleértve a Windows megjelenítési alaprendszer (WPF) és a Windows Forms (WinForms) alkalmazást is – akkor az MSIX használatával csomagolhatja és helyezheti üzembe az alkalmazást.

Migrálás az MSIX-be régi telepítőkből

Ha az alkalmazás jelenleg egy örökölt telepítőt használ, az MSIX-be migrálva tiszta telepítést/eltávolítást, automatikus frissítéseket, Áruház-terjesztést és csomagdentitást szerezhet. Az áttelepítési útvonal a jelenlegi telepítő technológiától és a forráskódhoz való hozzáféréstől függ.

Jelenlegi telepítő Ajánlott migrálási útvonal Forráskód szükséges?
MSI (Windows Installer) Az MSIX csomagolóeszköz használatával alakítsa át az MSI-t közvetlenül MSIX-vé. A legtöbb MSI-mintát kezeli, beleértve az egyéni műveleteket is. No
ClickOnce (.NET) Újraépítés forrásból az VISUAL STUDIO MSIX csomagolási projekt használatával. A ClickOnce automatikus frissítése lecserélhető Áruházbeli frissítésekre vagy Alkalmazástelepítőre. Igen
InstallShield / Advanced Installer Az MSIX csomagolóeszköz használatával rögzíthet egy tiszta virtuális gépen lévő telepítést. Az összetett egyéni műveletek manuális javítást igényelhetnek a Csomagszerkesztőben. No
Inno Setup /NSIS Használja az MSIX csomagolóeszköz virtuálisgép-alapú rögzítési munkafolyamatát. Futtassa az EXE-telepítőt az eszköz elkülönített környezetében. No
App-V (virtuális csomagok) Konvertálás közvetlenül az MSIX csomagolóeszköz használatával – bemenetként támogatja App-V 5.x csomagokat. No
MSIX szükséges módosításokkal A Csomagtámogatási keretrendszer használatával futtatókörnyezeti javításokat (fájl-/beállításjegyzék-átirányítást) alkalmazhat az alkalmazáskód módosítása nélkül. No

Jótanács

Azoknál az alkalmazásoknál, amelyek összetett telepítőkkel, kernelillesztőkkel, SYSTEM-fiók alatt futó szolgáltatásokkal vagy az MSIX által nem támogatott, a teljes gépre érvényes COM-regisztrációkkal rendelkeznek, érdemes megfontolni a külső helyet használó MSIX használatát (külső hellyel csomagolva). Ez Windows funkciók csomagidentitását biztosítja, miközben egy hagyományos telepítőt használ az emelt szintű hozzáférést igénylő összetevőkhöz. Lásd: Csomag identitásának megadása külső helyszínnel való csomagolás által.

Főbb szempontok

  • Tiszta virtuális gép tesztelése – Az MSIX csomagolóeszköz a telepítés során rögzíti az összes módosítást. Futtassa egy tiszta Windows lemezképen, hogy elkerülje a nem kapcsolódó rendszerváltozások rögzítését.
  • Csomagtámogatási keretrendszer – Ha a konvertált alkalmazás futásidejű problémái vannak (fájlútvonal-feltételezések, a beállításjegyzék a HKLM-be ír), a csomagtámogatási keretrendszer ezeket a forrás módosítása nélkül is ki tudja javítani.
  • Párhuzamosan az örökölt telepítővel – Az áttérés során üzembe helyezheti az MSIX-verziót az örökölt telepítővel együtt. Explicit beállítások/adatmigrálás megtervezése (például importálás első futtatáskor), mert a csomag identitása és tárolási helye eltér az MSIX és az MSI/EXE telepítések között.

Egyéb telepítési technológiák