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.
Un projet sdk d’application Windows dépend de l’infrastructure par défaut. Pour passer au déploiement autonome, suivez les étapes ci-dessous (les termes dépendant de l’infrastructure et autonome sont décrits dans la vue d’ensemble du déploiement du Kit de développement logiciel (SDK) d’application Windows).
- Dans Visual Studio, cliquez avec le bouton droit sur le nœud du projet d’application, puis cliquez sur Modifier le fichier projet pour ouvrir le fichier projet d’application à modifier. Pour un projet C++, cliquez d'abord sur Décharger le Projet.
- Dans le fichier projet d’application, à l’intérieur du fichier principal
PropertyGroup, ajoutez<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>comme indiqué dans la capture d’écran ci-dessous.
- Enregistrez et fermez le fichier projet.
- Cliquez sur recharger le projet.
- Si vous utilisez un projet d’empaquetage d'application Windows (plutôt que le projet unique MSIX que vous obtenez avec Application vide, empaquetée (WinUI 3 dans Bureau)), apportez toutes les modifications susmentionnées également dans le fichier projet du projet d'empaquetage.
Remarque
Les projets de bibliothèque ne doivent pas être modifiés. Le déploiement autonome ne doit être configuré que dans les projets d’application (et, le cas échéant, dans un projet d’empaquetage d’applications Windows).
Pour obtenir des exemples d’applications, consultez les exemples de déploiement autonome du Kit de développement logiciel (SDK) d’application Windows.
Après avoir défini la WindowsAppSDKSelfContained propriété true dans votre fichier de projet, le contenu du kit de développement logiciel (SDK) d’application Windows s'extraira dans le répertoire de sortie de votre build et sera déployé dans le cadre de votre application.
Remarque
Les applications .NET doivent être publiées en tant que autonomes et être entièrement autonomes. Consultez cet exemple de pour savoir comment configurer .NET autonome avec des profils de publication.
dotnet publish n’est pas encore pris en charge avec windows App SDK 1.1.
Remarque
Les applications C++ doivent également utiliser les crT hybrides pour être entièrement autonomes. L’importation de HybridCRT.props à partir de Directory.Build.props est la méthode recommandée pour la configurer pour tous les projets d’une solution (voir un exemple dans Directory.Build.props). Une application empaquetée doit également définir <UseCrtSDKReferenceStaticWarning>false</UseCrtSDKReferenceStaticWarning> dans son fichier de projet. Consultez l'exemple d'application de déploiement autonome pour savoir comment utiliser le CRT hybride.
Si votre application est empaquetée (pour plus d’informations, consultez Vue d’ensemble du déploiement), les dépendances du Kit de développement logiciel (SDK) d’application Windows sont incluses en tant que contenu dans le package MSIX. Le déploiement de l’application nécessite toujours l’inscription du package MSIX comme toute autre application empaquetée.
Si votre application est conditionnée avec une localisation externe ou pas conditionnée, les dépendances du Windows App SDK sont copiées à côté du .exe dans le résultat de votre compilation. Vous pouvez déployer les fichiers résultants à l'aide de la méthode xcopy, ou les inclure dans un programme d’installation personnalisé.
Dépendances sur des packages MSIX supplémentaires
Un petit nombre d’API dans le Kit de développement logiciel (SDK) d’application Windows reposent sur des packages MSIX supplémentaires qui représentent des fonctionnalités de système d’exploitation critiques.
- Par exemple (à partir du Kit de développement logiciel (SDK) d’application Windows 1.1), les API de notifications Push (PushNotificationManager) et les API de notifications d’application (AppNotificationManager) ont une dépendance sur le package Singleton (voir Architecture de déploiement pour le Kit de développement logiciel (SDK) d’application Windows).
Cela signifie que si vous souhaitez utiliser ces API dans une application autonome, vous disposez des options suivantes :
- Vous pouvez rendre votre fonctionnalité facultative et l’allumer uniquement si possible. L’appel de la méthode IsSupported des API (PushNotificationManager.IsSupported et AppNotificationManager.IsSupported) vous permet de vérifier dynamiquement au moment de l’exécution si les API sont disponibles ou non pour l’application appelante sur le système sur lequel elle s’exécute.
- Cela permet une utilisation sécurisée, conditionnelle et facultative des API sans compromettre la simplicité de votre déploiement autonome.
- Uniquement si les services de système d’exploitation sont installés en dehors de votre déploiement d’application, votre application allume les fonctionnalités appropriées. Toutefois, il existe certains cas où les API fonctionnent même sans que le package Singleton soit présent ; Ainsi, l’appel de IsSupported à vérifier est souvent une bonne idée.
- Déployez les packages MSIX requis dans le cadre de l’installation de votre application.
- Cela vous permet de dépendre de l’API dans tous les scénarios. Toutefois, la nécessité d’un déploiement de package MSIX de dépendances dans le cadre de votre déploiement d’application peut compromettre la simplicité du déploiement autonome.
- N’utilisez pas l’API.
- Envisagez d’autres API qui fournissent des fonctionnalités similaires sans exigences de déploiement supplémentaires.
Choix de désactiver ou d'activer la prise en charge automatique d'UndockedRegFreeWinRT
La propriété de projet WindowsAppSdkUndockedRegFreeWinRTInitialize a été introduite dans la version 1.2 du Kit de développement logiciel Windows (SDK), depuis le canal stable. Si cette propriété est définie sur true, cela assure que la fonctionnalité sans enregistrement du SDK d'application Windows Runtime (UndockedRegFreeWinRT) est activée automatiquement au démarrage de l'application. Les applications autonomes non empaquetées nécessitent ce support.
WindowsAppSdkUndockedRegFreeWinRTInitialize a pour valeur par défaut true si WindowsAppSDKSelfContained est true et le Type de package est None et (à partir de la version 1.2 du Kit de développement logiciel (SDK) de l'application Windows) la propriété du projet OutputType est définie sur Exe ou WinExe (autrement dit, le projet produit un exécutable). Cette dernière condition consiste à empêcher l’ajout de la prise en charge automatique de UndockedRegFreeWinRT dans les DLL de bibliothèque de classes et d’autres fichiers non exécutables par défaut. Si vous n’avez besoin de la prise en charge automatique de UndockedRegFreeWinRT dans un fichier non exécutable (par exemple, une DLL de test chargée par un exécutable de processus hôte qui n’initialise pas UndockedRegFreeWinRT), vous pouvez l’activer explicitement dans votre projet avec <WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>.
Rubriques connexes
Windows developer