Windows-alkalmazások: csomagolás, üzembe helyezés és feldolgozás

Ez a témakör a következő lehetőségeket ismerteti:

  • Melyik csomagolási lehetőséget érdemes választani az alkalmazásához (csomagolt, külső helyet használó csomagolt vagy nem csomagolt).
  • Az alkalmazás üzembe helyezésének/terjesztésének és telepítésének módját.
  • Az alkalmazás futásidejű folyamata, beleértve azt is, hogy mennyire lesz elkülönítve, és milyen API-k lesznek elérhetők számára.

Ezeket a döntéseket az új és a meglévő alkalmazások esetében is meghozhatja. Ha azonban még egy új alkalmazás tervezési fázisában van, mielőtt elkezdené átgondolni a fenti szempontokat, először döntse el, hogy milyen fejlesztői platformot és felhasználói felületi keretrendszert fog használni az alkalmazáshoz. A döntéssel kapcsolatban lásd: Ismerkedés a WinUI-val.

Csomagolási lehetőségek: csomagolva, külső helyen csomagolva vagy csomagolatlan

Az alkalmazáshoz használni kívánt csomagolási lehetőségeket először egy csomagdentitásnak nevezett fogalom határozza meg. Egy alkalmazás számos Windows-bővíthetőségi funkciót — például háttérfeladatokat, olyan push értesítési forgatókönyveket, amelyek háttérbeli kézbesítést vagy COM-aktiválást használnak, egyéni helyimenü-bővítményeket és megosztási célokat — csak akkor használhat, ha futásidőben csomagidentitással rendelkezik, mert az operációs rendszernek (OS) tudnia kell azonosítani az adott API hívóját. Csak a csomagolt alkalmazások (beleértve a külső helyre csomagolt alkalmazásokat) rendelkeznek csomagidentitással.

A csomagolt, a külső helyhez csomagolt és a csomagolatlan modellek teljes ismertetéséhez, valamint azok kiválasztásához tekintse meg a Csomagolás áttekintését. A csomagidentitástól függő funkciókért tekintse meg a csomagidentitást igénylő funkciókat.

További információ arról, hogyan konfigurálhatja az alkalmazást csomagoltként vagy csomagolatlanként:

Tekintse meg a jelen témakör Windows Csomagkezelő és a WinGet-ügyfél szakaszát is.

Üzembe helyezés/disztribúció/telepítés

A csomagolt alkalmazások az MSIX használatával vannak csomagolva és telepítve is. Ha úgy dönt, hogy külső helyen csomagol, ez egy "saját telepítő" modell, így továbbra is saját maga végzi a telepítő munkáját (lásd: Csomagazonosság biztosítása külső helyen lévő csomagolással). A csomagolatlan alkalmazások egyáltalán nem érintik az MSIX-et.

A csomagolás fontos, mert az MSIX zökkenőmentes telepítési, eltávolítási és frissítési élményt biztosít a felhasználóknak, támogatja a növekményes és automatikus frissítéseket, a Microsoft Store-ra van optimalizálva, együttműködik az Azure Virtual Desktop MSIX app attach funkciójával, és aláírva erős manipuláció elleni védelmet nyújt.

Az üzembe helyezéssel és a terjesztési útmutatóval kapcsolatban tekintse meg a Csomag és üzembe helyezés áttekintését , valamint a Terjesztési útvonal kiválasztása című témakört. Lásd még a jelen témakör Windows Csomagkezelő és WinGet-ügyfél szakaszát.

AppContainer vagy Medium IL

Az alkalmazás AppContainerben való futtatásának lehetősége biztonsági kérdés. Az AppContainer-alkalmazás folyamata, valamint annak gyermekfolyamatai egy könnyűsúlyú alkalmazástárolóban futnak, ahol csak a számukra adott erőforrásokat érhetik el. A fájlrendszer és a beállításjegyzék virtualizálásával elkülönítve vannak. Ennek eredményeképpen az AppContainerben implementált alkalmazások nem törhetők fel, hogy a korlátozott hozzárendelt erőforrásokon kívüli rosszindulatú műveleteket engedélyezhessenek.

A csomagolt vagy csomagolatlan alkalmazások konfigurálhatók úgy, hogy egy AppContainerben fussanak. A folyamat azonban egyszerűbb a csomagolt alkalmazások esetében. Ha egy alkalmazás nem AppContainer-alkalmazás, akkor közepes IL-alkalmazás .

További információ: AppContainer az örökölt alkalmazásokhoz és az MSIX AppContainer-alkalmazásokhoz.

További információ arról, hogyan konfigurálhatja az alkalmazást appContainerben vagy Közepes IL-ben való futtatásra:

  • WinUI-alkalmazások (Windows App SDK). Tekintse meg a uap10:TrustLevel alkalmazáscsomag jegyzék attribútumát a WinUI projekt AppContainerhez való konfigurálásához.
  • Asztali alkalmazások. Lásd a TrustLevel Visual Studio project tulajdonságot MSIX AppContainer apps (az alkalmazás típusának megfelelő szakaszban).
  • Univerzális Windows-platform (UWP) alkalmazások. Az UWP-alkalmazások már konfigurálva vannak az AppContainerben való futtatásra; és ez a konfiguráció nem módosítható.

Ne feledje, hogy a csomagolatlan alkalmazások nem rendelkeznek alkalmazáscsomag-jegyzékekkel. A csomagolatlan alkalmazások esetében tehát az AppContainer vagy -Medium-IL döntését a project fájlban deklarálhatja, nem pedig egy alkalmazáscsomag-jegyzékben.

Win32-alkalmazások elkülönítése

A Win32 alkalmazáselkülönítés egy biztonsági funkció (Windows 11, 24H2-es és újabb verzióban érhető el), amely segít az alkalmazások sérülésének megfékezésében, és védi a felhasználók adatvédelmi lehetőségeit. Olyan AppContainerekre és összetevőkre épül, amelyek virtualizálják az erőforrásokat, és közvetített hozzáférést biztosítanak. További információ: Win32 alkalmazáselkülönítés áttekintése és a Win32 alkalmazáselkülönítési GitHub adattár.

Alkalmazás képességei

Az alkalmazásképességek (például az internetClient, a hely, a mikrofon és a bluetooth) leginkább az AppContainerben futó csomagolt alkalmazások esetében relevánsak. Ez magában foglalja a minden Univerzális Windows-platform (UWP) alkalmazást, és néhány asztali alkalmazást.

Vannak azonban olyan forgatókönyvek, amikor még egy Közepes IL-alkalmazásnak (vagyis nem egy AppContainer-alkalmazásnak) is deklarálnia kell egy képességet. Ilyen például a runFullTrust korlátozott képessége.

Az alkalmazásképességekkel, az alkalmazástípusokkal és azok konfigurálásának módjával kapcsolatos további információkért tekintse meg az alkalmazásképesség-deklarációkat. A képességeket az alkalmazáscsomag jegyzékében konfigurálhatja; ezért csak a csomagolt alkalmazásokra vonatkoznak.

Alkalmazások típusai

Az asztali alkalmazások és Univerzális Windows-platform (UWP) alkalmazások a két fő alkalmazástípus, bár az asztali alkalmazások családjában számos alkalmazás létezik. A felhasználói felületi keretrendszer (WinForms, WPF, Win32, Direct 2D/3D vagy WinUI 3) kiválasztása bizonyos mértékben független a jelen témakörben ismertetett konfigurációktól.

Nézzük meg azonban, hogy ezek az alkalmazástípusok hogyan térhetnek el egymástól a csomagolás, az üzembe helyezés és a folyamat szempontjából.

Először is az összes UWP-alkalmazás csomagolva van, és egy AppContainerben fut. Az asztali alkalmazások esetében azonban a dolgok rugalmasabbak. Dönthet úgy, hogy becsomagozza az asztali alkalmazást, vagy nem. A döntéstől függetlenül dönthet úgy is, hogy az asztali alkalmazást AppContainerként vagy Közepes IL-alkalmazásként konfigurálja.

Csomagként elérhető Csomagolatlan
AppContainer Asztali alkalmazások
UWP-alkalmazások
Asztali alkalmazások
Közepes IL Asztali alkalmazások Asztali alkalmazások

A csomagolt alkalmazások esetében a kívánt alkalmazás típusának konfigurálásához használja az alkalmazáscsomag-jegyzékben található uap10:RuntimeBehavior attribútumot (lásd: Alkalmazás (Windows 10)).

  • Az asztali alkalmazások windowsosak .exe, általában fő vagy WinMain belépésipont-függvénnyel. Az alkalmazás asztali alkalmazásként való konfigurálásához állítsa be uap10:RuntimeBehavior a "packagedClassicApp" vagy a "win32App" értéket.
    • A "packagedClassicApp" érték winUI-alkalmazást (Windows App SDK) vagy asztali hídalkalmazást (Centennial) jelöl. A különbség az, hogy egy Centennial-alkalmazás egy AppContainerben fut.
    • A "win32App" pedig bármilyen más típusú Win32-alkalmazást jelez (beleértve a külső helyhez csomagolt alkalmazást is).
  • Végül, ha uap10:RuntimeBehavior 'windowsApp' értékre van állítva, az egy UWP-alkalmazást eredményez.

A fejleszthető alkalmazások összes lehetőségéről lásd: Windows app fejlesztés: lehetőségek és funkciók.

Windows App SDK: keretrendszerfüggő vagy önálló

Ha az alkalmazás a Windows App SDK használja, akkor azt is kiválaszthatja, hogy miként helyezheti üzembe az alkalmazástól függő SDK-futtatókörnyezetet: keretrendszerfüggő (alapértelmezett, ahol a Windows App SDK futtatókörnyezetnek és/vagy keretrendszercsomagnak jelen kell lennie a célgépen) vagy önállóan (az alkalmazás a Windows App SDK függőségeit hordozza magával). További információ: Windows App SDK üzembe helyezés áttekintése.

Windows Csomagkezelő és WinGet-ügyfél

Egy package manager segíthet a felhasználóknak a szoftver telepítésében/frissítésében/konfigurálásában a munkafolyamat automatizálásával. A csomagkezelők bármilyen szoftver telepítésében segíthetnek, de általában a developer tools telepítéséhez használják őket. Tehát ha fejlesztőeszközt készít, akkor különösen érdekelheti ez a lehetőség. De a következőképpen működik:

  • Ön, mint szoftverfejlesztő, meghatározza a package manager (deklaratív utasítások formájában) a termék sikeres telepítéséhez szükséges összes elemet.
  • Majd amikor egy felhasználó telepíti a szoftvert, a package manager a deklaratív utasításokat követve automatizálja a telepítési és konfigurálási munkafolyamatot.

Ennek eredménye a felhasználói környezet előkészítésével és a telepített összetevők közötti jobb kompatibilitással töltött idő csökkentése. A Windows Csomagkezelő használatával a csomagolt vagy csomagolatlan alkalmazásokat olyan formátumban terjesztheti, mint a .msix, .msi és .exe.

További információ: Windows Csomagkezelő.