Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La distribution non empaquetée vous permet d’expédier une application WinUI 3 sans MSIX , utile pour les scénarios d’entreprise où le déploiement MSIX n’est pas disponible, ou pour les développeurs qui préfèrent une installation basée sur un dossier traditionnel.
Important
Passez en revue ces limitations avant de commencer. Les applications WinUI 3 non empaquetées ont des contraintes qui affectent votre stratégie de distribution :
-
No single-file EXE : les dépendances SDK d'application Windows runtime et WinUI 3 doivent exister sous forme de fichiers distincts. La .NET fonctionnalité de publication à fichier unique (
PublishSingleFile) ne peut pas les regrouper dans un fichier exécutable. Vous allez toujours distribuer un dossier de fichiers (ou les encapsuler dans un programme d’installation traditionnel tel que WiX ou Inno Setup). - Dépendance de runtime — le runtime SDK d'application Windows doit être présent sur l'ordinateur de l'utilisateur. Vous devez regrouper le programme d’installation du runtime avec votre application ou utiliser un déploiement autonome (ce qui augmente considérablement la taille de sortie). Consultez Deploying the SDK d'application Windows runtime ci-dessous.
- No package identity : sans manifeste de package, votre application ne peut pas utiliser les fonctionnalités de Windows basées sur un manifeste : aucune mise à jour automatique via App Installer ou Store, aucune inscription de tâche en arrière-plan et aucune association de types de fichiers ni aucune personnalisation de vignette de menu Démarrer via le manifeste du package. (Les mécanismes Win32 traditionnels tels que les entrées de Registre écrites par le programme d’installation et les raccourcis fonctionnent toujours.)
- Aucune soumission MSIX/identité de package au Microsoft Store — Ce modèle de distribution n’a pas d’identité de package ; il n’est pas éligible pour une soumission MSIX au Microsoft Store. (Vous pouvez envoyer un programme d’installation traditionnel au Windows Store via le chemin d’envoi du programme d’installation MSI ou EXE, mais il s’agit d’un flux de travail distinct de ce que cet article décrit.)
Si ces contraintes sont un problème, envisagez d’empaqueter votre application (recommandée pour la plupart des applications) ou d’empaqueter avec un emplacement externe pour ajouter une identité de package sans conversion MSIX complète.
Pour plus d’informations sur toutes les options d’empaquetage, consultez Avantages et inconvénients de l’empaquetage de votre application.
Si vous choisissez de décompresser une application WinUI nouvelle ou existante, procédez comme suit :
Dans votre .csproj fichier, recherchez le premier élément PropertyGroup existant, qui contient OutputTypeégalement , TargetFrameworket d’autres propriétés.
- Ajoutez la propriété
WindowsPackageTypeproject à cet élément PropertyGroup. Affectez-lui la valeurNone.
<Project ...>
...
<PropertyGroup>
<WindowsPackageType>None</WindowsPackageType><!-- add this -->
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
...
</PropertyGroup>
...
</Project>
Pour démarrer l’application à partir de Visual Studio (Debugging ou sans débogage), sélectionnez le profil de lancement Unpackaged dans la liste déroulante Démarrer. Si le profil Package est sélectionné, une erreur de déploiement s'affiche dans Visual Studio. Cette étape n'est pas nécessaire si vous démarrez l'application (.exe) à partir de la ligne de commande ou de l'Explorateur de fichiers Windows.
API du programme d'amorçage
La définition de la propriété de projet
Si vous avez des besoins avancés (tels que la gestion des erreurs personnalisées ou pour charger une version spécifique du SDK d'application Windows), vous pouvez appeler explicitement l’API du programme d’amorçage. Pour plus d’informations, consultez Utilisez le runtime SDK d'application Windows pour les applications empaquetées avec un emplacement externe ou unpackaged et Tutorial : Utilisez l’API de démarrage dans une application empaquetée avec un emplacement externe ou non empaquetée qui utilise le SDK d'application Windows.
Pour plus d’informations sur le Bootstrapper, consultez Architecture de déploiement et aperçu pour les applications dépendantes du framework.
Déploiement du runtime SDK d'application Windows
Les applications WinUI 3 non empaquetées dépendent du runtime SDK d'application Windows installé sur l'ordinateur de l'utilisateur. Vous disposez de deux options pour vous assurer que le runtime est présent :
Option 1 : SDK d'application Windows programme d’installation du runtime (.exe) (recommandé)
Incluez le programme d’installation SDK d'application Windows runtime en même temps que votre application. Le programme d’installation du runtime est un .exe redistribuable qui installe les packages d’exécution SDK d'application Windows requis. Téléchargez-le à partir de la page des versions du SDK d'application Windows et intégrez-le à votre propre programme d'installation ou script d'installation. Pour obtenir des conseils complets, consultez Utilisez le runtime SDK d'application Windows pour les applications empaquetées avec un emplacement externe ou non empaquetés.
Les utilisateurs doivent exécuter le programme d’installation du runtime une seule fois. Les mises à jour ultérieures de l'application ne nécessitent pas la réinstallation du runtime, sauf si la version requise de SDK d'application Windows change.
Option 2 : Déploiement autonome
Définissez <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained> dans votre fichier projet pour regrouper le runtime SDK d'application Windows directement dans le dossier de sortie de votre application. Cela supprime la dépendance d’exécution : les utilisateurs n’ont pas besoin d’installer quoi que ce soit séparément.
<PropertyGroup>
<WindowsPackageType>None</WindowsPackageType>
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
</PropertyGroup>
Compromis : votre dossier de sortie est nettement plus grand (l'environnement d'exécution complet est inclus), et chaque mise à jour de l'application comporte l'ensemble du package de l'environnement d'exécution. Utilisez cette option pour les scénarios de distribution simples ou lorsque vous ne pouvez pas contrôler ce qui est installé sur l’ordinateur cible.
→ Déployer des applications non empaquetées qui utilisent le SDK d'application Windows pour obtenir la référence de déploiement d’exécution complète.
Limitation des fichiers EXE uniques
Important
Les applications WinUI 3 non empaquetées ne peuvent pas être publiées en tant qu’EXE à fichier unique. Le runtime SDK d'application Windows et plusieurs dépendances WinUI 3 doivent exister sous forme de fichiers distincts : la fonctionnalité de publication à fichier unique .NET ne peut pas les regrouper dans un fichier exécutable.
Si une expérience de distribution à fichier unique est importante pour votre scénario, envisagez ces alternatives :
- Utiliser l’empaquetage MSIX : les utilisateurs bénéficient d’une expérience d’installation unique (App Installer gère tous les fichiers) et vous obtenez l’éligibilité du Windows Store, l’identité du package et les mises à jour intégrées
- Utiliser un programme d’installation traditionnel (WiX, Installation d’Inno) : encapsulez le dossier de sortie dans un seul programme d’installation EXE qui extrait et installe tous les fichiers requis de manière transparente.
-
Utilisez une autre infrastructure — WPF et les applications WinForms avec
dotnet publish --self-contained -p:PublishSingleFile=truecan produisent un exe à fichier unique, bien que certaines dépendances natives puissent toujours être extraites au moment de l’exécution
Considérations relatives à la distribution pour les applications non empaquetées
Les applications WinUI 3 non empaquetées n’ont pas d’identité de package, ce qui signifie qu’elles ne peuvent pas accéder à certaines fonctionnalités de Windows :
- Aucune mise à jour automatique via le programme d’installation d’application ou Windows Store
- Aucune inscription de tâche d'arrière-plan via le manifeste de package
- Il n'y a aucune association de type de fichier ni de gestionnaires de protocole via le manifeste de package.
- Aucune personnalisation de vignette du menu Démarrer via le manifeste du paquet
Si vous avez besoin de ces fonctionnalités, envisagez d’empaqueter avec un emplacement externe comme voie intermédiaire qui ajoute l'identité du package sans nécessiter de conversion MSIX complète.
→ Publier votre première application Windows pour obtenir une vue d’ensemble complète des options de distribution pour WinUI 3 et d’autres infrastructures d’application Windows.
Windows developer