Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I det här avsnittet beskrivs dina alternativ för:
- Vilket paketeringsalternativ du ska använda för appen (paketerat, paketerat med extern plats eller opaketerat).
- Hur du implementerar/distribuerar din app och hur den kommer att installeras.
- Appens körningsprocess, inklusive hur isolerad den blir och vilka API:er som kommer att vara tillgängliga för den.
Du kan fatta dessa beslut för både nya och befintliga appar. Men om du fortfarande är i planeringsfasen för en ny app måste du först bestämma vilket ramverk för utvecklingsplattform och användargränssnitt du ska använda för din app innan du börjar tänka på övervägandena ovan. Och för det beslutet, se En översikt över Windows utvecklingsalternativ.
Paketeringsalternativ: paketerad, paketerad med extern plats eller opaketerad
Beslutet om vilket paketeringsalternativ som ska användas för din app bestäms först av ett begrepp som kallas paketidentitet. Många Windows utökningsfunktioner (bakgrundsuppgifter, push-meddelandescenarier som använder bakgrundsleverans eller COM-aktivering, anpassade snabbmenytillägg och resursmål) kan endast användas av en app om appen har paketidentitet vid körning, eftersom operativsystemet (OS) måste kunna identifiera anroparen för motsvarande API. Endast paketerade appar (inklusive appar som paketeras med extern plats) har paketidentitet.
En fullständig förklaring av modellerna paketerad, paketerad med extern plats och opaketerad samt hur du väljer mellan dem finns i översikten över paketering. De funktioner som är beroende av paketidentitet finns i Funktioner som kräver paketidentitet.
Information om att konfigurera din app som paketerad eller uppackad:
-
WinUI 3-appar (Windows App SDK). Se egenskapen
AppxPackageVisual Studio project i egenskaperna Project och se Skapa ditt första WinUI (Windows App SDK) project. - Skrivbordsappar. Se Konfigurera din skrivbordsapp för MSIX-paketering.
- Universal Windows Platform(UWP) appar. UWP-appar har redan konfigurerats som paketerade. och den konfigurationen kan inte ändras.
Se även avsnittet Windows Správca balíkov och WinGet-klienten i det här avsnittet.
Driftsättning/distribution/installation
En paketerad app är både paketerad och installerad med hjälp av MSIX. Om du väljer att paketera med extern plats är det en "bring-your-own-installer"-modell, så du utför fortfarande installationsprogrammet själv (se Bevilja paketidentitet genom att paketera med extern plats). En oförpackad app involverar inte MSIX alls.
Paketering är viktigt eftersom MSIX ger användarna en ren installations-, avinstallations- och uppdateringsupplevelse, stöder inkrementella och automatiska uppdateringar, optimeras av Microsoft Store, fungerar med MSIX-appanslutning för Azure Virtual Desktop och drar nytta av starkt skydd mot manipulering när de signeras.
Vägledning om distribution och distribuering finns i Översikt över paketering och distribution och Välj en distributionsmetod. Se även avsnittet Windows Správca balíkov och WinGet-klienten i det här avsnittet.
AppContainer eller Medium IL
Alternativet att köra din app i en AppContainer, eller inte, är en fråga om säkerhet. En AppContainer-appprocess och dess underordnade processer körs i en lättviktsappcontainer där de bara kan access de resurser som specifikt beviljas dem. Och de isoleras med hjälp av filsystem och registervirtualisering. Därför kan appar som implementeras i en AppContainer inte hackas för att tillåta skadliga åtgärder utanför de begränsade tilldelade resurserna.
Paketerade eller uppackade appar kan konfigureras att köras i en AppContainer. Men processen är enklare för paketerade appar. Om en app inte är en AppContainer-app är det en Medium IL-app .
Mer information finns i AppContainer för äldre appar och MSIX AppContainer-appar.
För information om hur du konfigurerar din app att köras i en AppContainer eller Medium IL:
-
WinUI-appar (Windows App SDK). Se manifestattributet
uap10:TrustLeveli Konfigurera ett WinUI-project för AppContainer. -
Skrivbordsappar. Se egenskapen
TrustLevelVisual Studio project i MSIX AppContainer-appar (i avsnittet som är lämpligt för din typ av app). - Universal Windows Platform(UWP) appar. UWP-appar har redan konfigurerats för att köras i en AppContainer. och den konfigurationen kan inte ändras.
Kom ihåg att uppackade appar inte har något apppaketsmanifest. Så för opacketerade appar deklarerar du ditt AppContainer-eller-Medium-IL-beslut i din projektfil i stället för i ett app-paketmanifest.
Win32-appisolering
Win32-appisolering är en säkerhetsfunktion (tillgänglig i Windows 11 version 24H2 och senare) som hjälper till att begränsa skador om en app komprometteras och skyddar användarnas sekretessval. Den bygger på AppContainers och komponenter som virtualiserar resurser och ger asynkron åtkomst. Mer information finns i Win32 appisoleringsöversikt och Win32-appisolering GitHub lagringsplats.
Appfunktioner
Appfunktioner (till exempel internetClient, plats, mikrofon och bluetooth) är främst relevanta för paketerade appar som körs i en AppContainer. Det inkluderar alla Universal Windows Platform (UWP)-appar och några skrivbordsappar.
Men det finns vissa scenarier där även en Medium IL-app (det vill säga inte en AppContainer-app) bör deklarera en funktion. Ett exempel är den begränsade kapaciteten runFullTrust.
Mer information om appfunktioner, vilka typer av appar de gäller för och hur du konfigurerar dem finns i Appfunktionsdeklarationer. Du konfigurerar funktioner i apppaketmanifestet. och det är därför de endast gäller för paketerade appar.
Typer av appar
Skrivbordsappar och Universal Windows Platform (UWP) appar är de två huvudsakliga typerna av appar, även om det finns flera typer av appar i skrivbordsappfamiljen. Att välja ett gränssnittsramverk (WinForms, WPF, Win32, Direct 2D/3D eller WinUI 3) är i viss mån oberoende av de konfigurationer som beskrivs i det här avsnittet.
Men låt oss ta en titt på hur dessa apptyper kan skilja sig från varandra när det gäller paketering, distribution och process.
Först och främst paketeras alla UWP-appar och körs i en AppContainer. Men för skrivbordsappar är saker mer flexibla. Du kan välja att paketera din skrivbordsapp eller inte. Och oberoende av det beslutet kan du välja att konfigurera din skrivbordsapp som antingen en AppContainer eller en Medium IL-app.
| Förpackade | Unpackaged | |
|---|---|---|
| AppContainer | Skrivbordsappar UWP-appar |
Skrivbordsappar |
| Medelhög IL | Skrivbordsappar | Skrivbordsappar |
För paketerade appar använder du attributet uap10:RuntimeBehavior i apppaketmanifestet för att konfigurera den typ av app som du vill använda (se Application (Windows 10)).
-
Skrivbordsappar är Windows-appar
.exe, vanligtvis med en huvud - eller WinMain-startpunktsfunktion . Om du vill konfigurera din app som en skrivbordsapp anger duuap10:RuntimeBehaviortill antingen "packagedClassicApp" eller "win32App".- Värdet "packagedClassicApp" anger antingen en WinUI-app (Windows App SDK) eller en Desktop Bridge-app (Centennial). Skillnaden är att en Centennial-app körs i en AppContainer.
- Och "win32App" anger alla andra typer av Win32-appar (inklusive en app som paketeras med extern plats).
- Slutligen ger inställningen
uap10:RuntimeBehaviortill "windowsApp" en UWP-app.
Alla alternativ för de typer av appar som du kan utveckla finns i Windows app utveckling: alternativ och funktioner.
Windows App SDK: ramverksberoende eller fristående
Om din app använder Windows App SDK väljer du även hur du distribuerar SDK-körningen som appen är beroende av: ramverksberoende (standardinställningen, där Windows App SDK-körnings- och/eller Framework-paketet måste finnas på måldatorn) eller fristående (appen bär med sig sina Windows App SDK beroenden). Mer information finns i Windows App SDK distributionsöversikt.
Windows Správca balíkov och WinGet-klienten
En package manager kan hjälpa användarna att installera/uppgradera/konfigurera programvaran genom att automatisera arbetsflödet. Pakethanterare kan hjälpa till att installera valfri programvara, men de används oftast för att installera developer tools. Om du skapar ett utvecklarverktyg kanske du är särskilt intresserad av det här alternativet. Men så här fungerar det:
- Som programutvecklare definierar du till package manager (i form av deklarativa instruktioner) alla de delar som krävs för en lyckad installation av produkten.
- Och när en användare installerar programvaran följer package manager deklarativa instruktioner för att automatisera arbetsflödet för installation och konfiguration.
Resultatet är en minskning av den tid som ägnas åt att förbereda en användares miljö och bättre kompatibilitet mellan de installerade komponenterna. Och du kan använda Windows Správca balíkov för att distribuera dina paketerade eller uppackade appar i format som .msix, .msi och .exe.
Mer information finns i Windows Správca balíkov.
Windows developer