Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Pakketten bepalen hoe uw app wordt geïnstalleerd, bijgewerkt en geïntegreerd met Windows. WinUI 3-apps zijn standaard verpakt, terwijl veel bureaublad-apps, zoals traditionele Win32-toepassingen, uitgepakt worden uitgevoerd. Het kiezen tussen een verpakte of uitgepakte app is van invloed op de functies die u kunt gebruiken, het implementatiemodel waarop u vertrouwt en de algehele ervaring die uw klanten krijgen.
Opmerking
Een nieuwe WinUI 3-app bouwen? U bent al standaard verpakt. De onderstaande richtlijnen zijn het meest relevant voor ontwikkelaars die een expliciete keuze moeten maken, meestal bij het overzetten van een bestaande app, het implementeren op bedrijfscomputers of het toevoegen van Windows-functies aan een app die oorspronkelijk niet is verpakt.
Waarom app-pakketten belangrijk zijn
Verpakte apps profiteren van een schoon installatiemodel, automatische updates en toegang tot Windows functies waarvoor pakketidentiteit is vereist, waaronder achtergrondtaken, meldingen, contextmenu-extensies, doelen delen en andere uitbreidbaarheidspunten. Pakketten zorgen ook voor schonere implementaties, betrouwbare updates en gestroomlijnde distributie via kanalen zoals de Microsoft Store- en bedrijfsimplementatieprogramma's.
Functies waarvoor pakketidentiteit is vereist
Deze Windows-functies werken alleen in apps met pakketidentiteit, hetzij via volledige MSIX-verpakking of verpakking met externe locatie (Sparse packaging).
| Feature | Beschrijving |
|---|---|
| achtergrondtaken | Voer code uit wanneer uw app zich niet op de voorgrond bevindt, bijvoorbeeld om gegevens te synchroniseren, downloads te verwerken of te reageren op systeemevenementen. |
| Windows AI-API's (Phi Silicium, OCR, enzovoort) | Krijg toegang tot AI-mogelijkheden op het apparaat, zoals lokale taalmodellen, tekstherkenning en afbeeldingsanalyse. |
| Pushmeldingen (WNS) | Ontvang realtime meldingen van uw cloudservice via de Windows Notification Service. |
| Doel delen | Laat gebruikers inhoud van andere apps rechtstreeks naar u delen via het systeemshareblad. |
| Aangepaste contextmenu-extensies | Voeg de acties van uw app toe aan het contextmenu in Verkenner en op andere shelloppervlakken. |
| Bestandstypen en protocolkoppelingen | Registreer uw app als handler voor specifieke bestandstypen of URI-protocollen (bijvoorbeeld yourapp://). |
| Opstarttaken | Start uw app automatisch wanneer de gebruiker zich aanmeldt bij Windows. |
| App-services | Maak achtergrondservices beschikbaar die andere apps kunnen aanroepen, waardoor communicatie tussen apps mogelijk is. |
Aanbeveling
Als uw pakket uitgepakt is en u E_ILLEGAL_METHOD_CALL of APPMODEL_ERROR_NO_PACKAGE fouten krijgt bij het aanroepen van Windows-API's, komt dat door de vereiste voor pakketidentiteit. Beschouw verpakkingen met externe locatie (Sparse verpakking) als de oplossing met de minste wrijving.
Zie Functies waarvoor pakketidentiteit is vereist voor meer informatie.
Verpakkingsmodellen in één oogopslag
| Model | Pakketidentiteit | Installer | In aanmerking komende winkel | Ideaal voor |
|---|---|---|---|---|
| Verpakt (MSIX) | ✅ Ja | MSIX vervangt het installatieprogramma | ✅ Ja | Nieuwe apps, Store-publicatie, ENTERPRISE MDM |
| Verpakking met externe locatie | ✅ Ja | Uw bestaande installatieprogramma | ❌ Nee | Bestaande apps met eigen installatieprogramma, ISV's |
| Uitgepakt | ❌ Nee | XCopy/script | ❌ Nee | Interne hulpprogramma's, ontwikkelhulpprogramma's, eenvoudige scenario's |
Verpakte apps (MSIX)
Verpakte apps maken gebruik van MSIX en hebben package identity, wat vereist is voor veel Windows uitbreidbaarheidspunten. Met pakketidentiteit kan Windows de aanroeper van platform-API's betrouwbaar identificeren. Daarom zijn deze functies ervan afhankelijk.
- Verpakte apps worden doorgaans uitgevoerd in een lichtgewicht app-container met bestandssysteem- en registervirtualisatie (zie AppContainer voor verouderde apps en MSIX AppContainer-apps).
- Apps kunnen indien nodig ook worden geconfigureerd om niet in een app-container te draaien.
- MSIX wordt zowel gebruikt voor het verpakken als installeren (zie Wat is MSIX?).
Verpakking met externe locatie (Schaars verpakking)
Met pakketten met externe locatie (ook wel sparse-pakketten genoemd) kunt u een klein identiteitspakket naast uw bestaande app registreren, zonder uw installatieprogramma, binaire locaties of updateproces te wijzigen. Het is geïntroduceerd in Windows 10 versie 2004 (build 19041).
Dit is de zoete plek voor bestaande Win32/WPF/WinForms-apps die worden verzonden via hun eigen installatieprogramma (NSIS, WiX, InstallShield, enzovoort) en deze niet willen vervangen door MSIX. nl-NL: U registreert een lichtgewicht identiteitspakket, uw binaire bestanden blijven op hun plek en u ontgrendelt de volledige set Windows-functionaliteiten die gebonden zijn aan pakketidentiteit.
| Vermogen | MSIX | Externe locatie |
|---|---|---|
| Vervangt uw installatieprogramma | Ja | No |
| Binaire bestanden in het pakket | Ja | Nee (extern) |
| In aanmerking komende winkel | Ja | No |
| Pakketidentiteit | Ja | Ja |
| Mechanisme voor bijwerken | MSIX-update | Uw bestaande mechanisme |
→ volledig overzicht: Pakketidentiteit verlenen door pakket met externe locatie te verpakken
Uitgepakte apps
Uitgepakte apps maken geen gebruik van MSIX en hebben geen pakketidentiteit, wat betekent dat ze geen toegang hebben tot de functies die hierboven worden vermeld.
- Ze blijven volledig onbeperkt qua API-oppervlakte, besturingssysteemtoegang, registertoegang, verhoging en procesmodel.
- Installatie en updates zijn afhankelijk van
.exe,.msiaangepaste installatieprogramma's, ClickOnce- of xcopy-implementatie.
Voordat u zich verbindt aan ongepakte versies, controleert u de functietabel hierboven tegen uw roadmap. Als meldingen, achtergrondtaken of AI-API's zich aan de horizon bevinden, kunt u overwegen om verpakt te beginnen.
Kiezen op scenario
| Scenario | Aanbevolen model | Details |
|---|---|---|
| Indie-ontwikkelaars publiceren naar de Microsoft Store | Verpakt (MSIX) | Voor de Store is MSIX vereist. WinUI 3-apps zijn standaard verpakt. Er zijn geen wijzigingen nodig. Ondertekening van code wordt gratis verwerkt door de Store. → uw verpakte app distribueren |
| Enterprise-app geïmplementeerd via Intune of Configuration Manager | Gebundelde of externe plaats voor bestaande installatieprogramma's | Nieuwe apps moeten MSIX gebruiken. Bestaande apps met hun eigen installatieprogramma kunnen pakketten gebruiken met een externe locatie. Code-ondertekening: een zelfondertekend certificaat gebruiken (vertrouwd via Intune, Groepsbeleid of Configuration Manager) of Azure Artifact Signing (voorheen Trusted Signing). → Verpakte apps implementeren |
| ISV verzendt een directe download met eigen installatieprogramma | Verpakking met externe locatie | Registreer een lichtgewicht identiteitspakket naast uw bestaande installatieprogramma. Code-ondertekening: een door een CA vertrouwd certificaat is vereist voor distributie buiten de Store. Azure Artifact Signing (voorheen Trusted Signing) is de aanbevolen optie voor lagere kosten. → Pakketidentiteit verlenen |
| Intern hulpprogramma of hulpprogramma voor ontwikkelaars | Unpackaged | Eenvoudigst om te bouwen en te implementeren. De Windows App SDK werkt via NuGet, maar sommige functies zijn niet beschikbaar. |
Aanbeveling
Weet u niet zeker wat de kosten voor ondertekening van programmacode zijn? Publiceren via de Microsoft Store betekent dat u geen afzonderlijk certificaat hoeft te verkrijgen of te beheren voor een vertrouwensrelatie van eindgebruikers. Voor andere distributiepaden is uw ondertekeningsbenadering afhankelijk van de implementatiecontext. Bedrijfsomgevingen kunnen een zelfondertekend certificaat vertrouwen via apparaatbeheer, terwijl voor een bredere distributie buiten het archief doorgaans een door ca vertrouwde oplossing voor ondertekening van programmacode is vereist. Azure Artifact Signing (voorheen Trusted Signing) is Microsoft aanbevolen optie (zie pricing), zonder dat er hardwaretoken is vereist.
Frameworkafhankelijke versus zelfstandige implementatie
Apps die gebruikmaken van het Windows App SDK kiezen hoe de runtime-afhankelijkheden moeten worden meegestuurd, los van het verpakkingsmodel:
- Framework-afhankelijk: De Windows App SDK-runtime moet worden geïnstalleerd op de machine van de gebruiker. Kleinere app-footprint; is afhankelijk van de runtime die aanwezig of automatisch is geïnstalleerd.
- Self-contained: Alle Windows App SDK-binaries worden geleverd met uw app. Grotere voetafdruk; geen externe runtime-vereiste. Geschikt voor vergrendelde bedrijfsomgevingen.
→ Zelfstandige apps implementeren
Aan de slag gaan met MSIX
Als u een Win32-bureaublad-app bouwt (ook wel een classic desktop-app genoemd) of een .NET-app, waaronder Windows Presentation Foundation (WPF) en Windows Forms (WinForms), kunt u uw app inpakken en implementeren met MSIX.
- Een MSIX-pakket maken vanuit een bestaand installatieprogramma
- een MSIX-pakket maken vanuit broncode
- Uw MSIX-implementatie beheren
Andere installatietechnologieën
- toepassingsinstallatie en -onderhoud
- Windows Installer
- Overzicht van het publiceren van .NET-toepassingen
- Implementeren van het .NET Framework en applicaties
- Deploying a WPF application
- ClickOnce Deployment for Windows Forms
Verwante inhoud
Windows developer