Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az örökölt alkalmazásokhoz készült AppContainer témakör az AppContainer környezetével és előnyeivel kapcsolatos összes szükséges háttérinformációt ismerteti; ez a témakör C# és C++ kód példákat is tartalmaz annak tesztelésére, hogy egy folyamat fut-e egy AppContaineren belül.
Az éppen elolvasott témakör bemutatja, hogyan vehet igénybe egy MSIX-lel csomagolt alkalmazást, és hogyan konfigurálhatja egyszerűen úgy, hogy az AppContainer környezetben (egy egyszerűsített alkalmazástárolóban) fusson. Az univerzális Windows-platform (UWP) alkalmazások automatikusan AppContainer-alkalmazások. Az MSIX-sel csomagolt asztali alkalmazást azonban appContainer-alkalmazásként is konfigurálhatja.
Az AppContainer-alkalmazások folyamata és gyermekfolyamatai egy egyszerűsített alkalmazástárolóban futnak, ahol csak a számukra adott erőforrásokhoz férhetnek hozzá. 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.
Jótanács
A csomagolatlan alkalmazások az AppContainerben is futtathatók. De az AppContainer használata különösen egyszerű, ha MSIX-et használsz. A jelen témakörben ismertetett forgatókönyvek tehát a csomagolt alkalmazásokról szólnak.
WinUI 3-projekt konfigurálása az AppContainerhez
Az új projekt létrehozása csomagolt C# vagy C++ WinUI 3 asztali alkalmazáshoz című szakasz lépései bemutatják az új WinUI 3-projekt létrehozásának alapértelmezett és ajánlott módját.
Alapértelmezés szerint a projekt fájlja egy teljes megbízhatósági (azaz közepes integritási szintű) csomag konfigurációját Package.appxmanifest tartalmazza. A vonatkozó szakaszok a következőképpen néznek ki:
...
<Applications>
<Application ...
EntryPoint="$targetentrypoint$">
...
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
...
Ha a csomagot AppContainer-alkalmazásként szeretné konfigurálni, szerkesztheti az EntryPoint attribútumot, és eltávolíthatja a korlátozott képességdeklarációt (de megtarthatja a Képességek elemet). Tetszik:
...
<Applications>
<Application ...
EntryPoint="windows.partialTrustApplication">
...
</Application>
</Applications>
<Capabilities/>
...
Ha a csomag a Windows 10 2004-es verziójára (10.0; Build 19041) és/vagy újabb verzióra települ, akkor ahelyett, hogy beállítaná a EntryPoint értéket, állítsa be az uap10:TrustLevel és uap10:RuntimeBehavior értékeket (miután deklarálta az XML névtér előtagját, ahogy látható). Tetszik:
<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
...>
...
<Applications>
<Application ...
EntryPoint="$targetentrypoint$"
uap10:TrustLevel="appContainer"
uap10:RuntimeBehavior="packagedClassicApp">
...
</Application>
</Applications>
<Capabilities/>
...
További információkért tekintse meg az alábbi témaköröket:
- Alkalmazási elem
- Az uap10-et bevezették a Windows 10 2004-es verziójában (10.0; 19041-es build)
- Asztali alkalmazástípusok
WinUI 3 kétprojektes megoldás konfigurálása az AppContainerhez
Az előző szakasz az egyprojektes MSIX folyamatát ismertette; amelyet ajánlunk, és amely az új WinUI 3-projektek alapértelmezett értéke. Bővebb információért lásd: Az alkalmazás csomagolása egyprojektes MSIX használatával.
Előfordulhat azonban, hogy van egy WinUI 3-projektje, amely az egyprojektes MSIX szolgáltatás bevezetése előtt készült. Ebben az esetben két projekt lesz a megoldásban – az alkalmazásprojektben, valamint egy további Windows-alkalmazáscsomagoló projektben. Ha migrálhatja a projektet egyprojektes MSIX-be, akkor ez ideális. Az előző szakaszban található útmutatást is követheti. Bővebb információért lásd: Az alkalmazás csomagolása egyprojektes MSIX használatával.
Ha nem tudja migrálni a projektet egyprojektes MSIX-be, akkor ez a szakasz azt ismerteti, hogyan konfigurálhatja a csomagot AppContainer-alkalmazásként.
A Windows Application Packaging Project egy alapértelmezett beállítást jelent, amely felülírja a konfigurációt a következőben Package.appxmanifest: . A projekt úgy viselkedik, mintha a projektfájlban egy TrustLevel tulajdonság teljes értékűre lett volna állítva.
A vélelmezett tulajdonságérték orvoslásához bontsa ki a csomagolási projekt Függőségek>alkalmazás csomópontját, és válassza ki azt a csomópontot, amely a WinUI 3 projektre mutató hivatkozást jelöli. Ezután a Visual Studio Tulajdonságok ablakában (nem a projekttulajdonságok) válassza ki a Részleges megbízhatóság értékét az Megbízhatósági szint tulajdonságnál.
A csomagolási projekt projektfájlja most a következő explicit tulajdonságot tartalmazza:
...
<ItemGroup>
<ProjectReference Include="...">
<TrustLevel>Partial</TrustLevel>
</ProjectReference>
</ItemGroup>
...
Most pedig eltávolíthatja <rescap:Capability Name="runFullTrust" /> a csomagolási projekt fájljából Package.appxmanifest .
Windows-alkalmazásprojekt (C++ Win32 WndProc típusú alkalmazás) konfigurálása az AppContainerhez
Ez a szakasz az Ön számára készült, ha a Windows Application Project projektsablonnal létrehozott C++ Win32 WndProc típusú projekttel rendelkezik. Az első lépés dióhéjban egy C++ Windows-alkalmazáscsomagoló projekt hozzáadása a megoldáshoz. A Visual Studio MSIX csomagolás beállítása az asztali alkalmazás számára című részben további részletek találhatók a pontos lépésekről. Ez a témakör a C++ vagy C# nyelven írt asztali alkalmazásokra vonatkozik.
Ezután nyissa meg az új csomagolási projekt projektfájlját, és adjon hozzá egy TrustLevel tulajdonságot a meglévő ProjectReference tulajdonsághoz , például a következőhöz:
...
<ItemGroup>
<ProjectReference Include="...">
<TrustLevel>Partial</TrustLevel>
</ProjectReference>
</ItemGroup>
...
A buildelés során a következő hibaüzenet jelenhet meg: "hiba APPX1673: Az alkalmazásjegyzék hiányzik a szükséges "PhoneIdentity" elemből. Ha ez történik, szerkessze a projekt fájlját Package.appxmanifest a következő módon:
<Package ...
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
...>
...
<mp:PhoneIdentity
PhoneProductId="A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx."
PhonePublisherId="A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.">
</mp:PhoneIdentity>
...
WPF- vagy WinForms-projekt konfigurálása az AppContainerhez
Ez a szakasz az Ön számára készült, ha a következők valamelyike van:
- egy Windows Presentation Foundation (WPF) alkalmazásprojekt, amely a C# WPF-alkalmazás projektsablonjával lett létrehozva. Ez egy .NET-projektet eredményez; és eltér a WPF-alkalmazás (.NET-keretrendszer) nevű projektsablontól. Vagy
- Egy Windows Forms (WinForms) alkalmazásprojekt, amely a C# Windows Forms Alkalmazás projektsablonnal lett létrehozva. Ez egy .NET-projektet eredményez; és eltér a Windows Forms App (.NET Framework) nevű projektsablontól.
Az első lépés dióhéjban egy C# Windows-alkalmazáscsomagoló projekt hozzáadása a megoldáshoz. A Visual Studio MSIX csomagolás beállítása az asztali alkalmazás számára című részben további részletek találhatók a pontos lépésekről.
Ezután bontsa ki a csomagolási projekt Függőségek>alkalmazás csomópontját, és válassza ki azt a csomópontot, amely a WPF- vagy WinForms-projektre mutató hivatkozást jelöli. Ezután a Visual Studio Tulajdonságok ablakában (nem a projekttulajdonságok) válassza ki a Részleges megbízhatóság értékét az Megbízhatósági szint tulajdonságnál.
Kapcsolódó témakörök
- AppContainer örökölt alkalmazásokhoz
- Új projekt létrehozása csomagolt C# vagy C++ WinUI 3 asztali alkalmazáshoz
- Alkalmazási elem
- Az uap10-et bevezették a Windows 10 2004-es verziójában (10.0; 19041-es build)
- Asztali alkalmazástípusok
- Csomagold be az alkalmazásodat egyprojektes MSIX-szel
- Windows Presentation Foundation (WPF)
- Windows Forms (WinForms) - egy grafikus felhasználói felület (GUI) könyvtár
- Állítsa be a Visual Studio-ban az asztali alkalmazását MSIX-csomagoláshoz.