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.
Cet article explique comment configurer une application qui n'est pas installée à l'aide de MSIX (autrement dit, il est empaqueté avec un emplacement externe ou non empaqueté) pour utiliser l'API de démarrage afin qu'elle charge explicitement le runtime Windows App SDK et appelle des API Windows App SDK. Les applications qui ne sont pas installées via MSIX incluent des applications empaquetées avec un emplacement externe et des applications non empaquetées.
Important
À compter de la Windows App SDK 1.0, l’approche par défaut pour charger le Windows App SDK à partir d’un package avec un emplacement externe ou une application non empaquetée consiste à utiliser auto-initialisation via la propriété <WindowsPackageType> project (ainsi que d’apporter des modifications de configuration supplémentaires). Pour connaître les étapes d'initialisation automatique dans le contexte d'un projet WinUI 3, consultez Créer votre premier projet WinUI. Ou, si vous disposez d'un project existant qui n'est pas WinUI, consultez
Si vous avez des besoins avancés (tels que la gestion des erreurs personnalisées ou pour charger une version spécifique du Windows App SDK), vous pouvez appeler explicitement l’API du programme d’amorçage. Et c’est l’approche que cette rubrique illustre. Pour plus d’informations, consultez Utilisez le runtime Windows App SDK pour les applications empaquetées avec un emplacement externe ou non empaquetés.
Cette rubrique illustre de façon explicite l'appel à l'API Bootstrapper à partir d'un projet d'application console de base ; mais les étapes s'appliquent à toute application de bureau non empaquetée qui utilise le Windows App SDK.
Avant de compléter ce didacticiel, nous vous recommandons de consulter Runtime architecture pour en savoir plus sur la dépendance du package Framework que votre application exige lorsqu’elle utilise le Windows App SDK, et les composants supplémentaires nécessaires pour fonctionner dans un package avec une localisation externe ou une application non packagée.
Prérequis
- Installer des outils pour Windows App SDK.
- Vérifiez que toutes les dépendances pour empaquetées à l’emplacement externe et les applications non empaquetées sont installées (consultez Windows App SDK guide de déploiement pour les applications dépendantes du framework empaquetées avec un emplacement externe ou non empaquetées). Un moyen simple pour le faire consiste à exécuter le programme d’installation du runtime Windows App SDK.
Les instructions
Vous pouvez suivre ce didacticiel à l’aide d’un project C# ou C++.
Remarque
Les dépendances dynamiques et les API de démarrage échouent lorsqu'elles sont appelées par un processus élevé. Par conséquent, Visual Studio ne doit pas être lancé avec élévation de privilèges. Pour en savoir plus, consultez Dynamic Dependencies ne prend pas en charge l'élévation #567.
Suivez ces instructions pour configurer un projet WinUI C# emballé avec un emplacement externe ou non emballé.
Dans Visual Studio, créez une application C# Console App project. Nommez le project DynamicDependenciesTest. Après avoir créé le project, vous devez disposer d’une application console C# « Hello, World ! ».
Ensuite, configurez votre project.
- Dans Solution Explorer, cliquez avec le bouton droit sur votre project et choisissez Edit Project Fichier.
- Remplacez la valeur de l'élément TargetFramework par un moniker Target Framework. Par exemple, utilisez ce qui suit si votre application cible Windows 10 version 2004.
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>- Enregistrez et fermez le fichier project.
Changez la plateforme de votre solution en x64. La valeur par défaut d'un .NET project est AnyCPU, mais WinUI ne prend pas en charge cette plateforme.
- Sélectionnez Build>Configuration Manager.
- Sélectionnez la liste déroulante sous Plate-forme de solution active et cliquez sur Nouveau pour ouvrir la boîte de dialogue Nouvelle plate-forme de solution.
- Dans la liste déroulante sous Type ou sélection de la nouvelle plate-forme, sélectionnez x64.
- Cliquez sur OK pour fermer la boîte de dialogue Nouvelle plate-forme de solution.
- Dans Configuration Manager, cliquez sur Close.
Installez le package NuGet Windows App SDK dans votre project.
- Dans Solution Explorer, cliquez avec le bouton droit sur le nœud Dependencies et choisissez Manage Nuget Packages.
- Dans la fenêtre NuGet Package Manager, sélectionnez l’onglet Browse, puis installez le package Microsoft.WindowsAppSDK.
Vous êtes maintenant prêt à utiliser l'API de bootstrapper (voir Utilisez le runtime Windows App SDK pour les applications emballées avec un emplacement externe ou non emballées) pour établir dynamiquement une dépendance envers le package framework Windows App SDK. Cela vous permet d’utiliser les API Windows App SDK dans votre application.
Ouvrez le fichier de code Program.cs et remplacez le code par défaut par le code suivant pour appeler la méthode Bootstrap.Initialize pour initialiser le programme d’amorçage. Ce code définit la version du Windows App SDK dont l'application dépend lors de l'initialisation du bootstrap.
Important
Vous devez modifier le code ci-dessous pour répondre à votre configuration spécifique. Consultez les descriptions des paramètres de la méthode Bootstrap.Initialize afin de pouvoir spécifier l’une des versions de la Windows App SDK que vous avez installées.
using System; using Microsoft.Windows.ApplicationModel.DynamicDependency; namespace DynamicDependenciesTest { class Program { static void Main(string[] args) { Bootstrap.Initialize(0x00010002); Console.WriteLine("Hello, World!"); // Release the DDLM and clean up. Bootstrap.Shutdown(); } } }À sa racine, l’API de démarrage est une API C/C++ native qui vous permet d’utiliser les API Windows App SDK dans votre application. Toutefois, dans une application .NET qui utilise le Windows App SDK 1.0 ou version ultérieure, vous pouvez utiliser le wrapper .NET pour l’API de démarrage. Ce wrapper permet d’appeler plus facilement l’API de programme d’amorçage dans une application .NET que d’appeler directement les fonctions C/C++ natives. L'exemple de code précédent appelle les méthodes statiques Initialize et Shutdown de la classe Bootstrap dans l'enveloppe .NET pour l'API d'amorçage.
Pour démontrer que les composants du runtime Windows App SDK ont été chargés correctement, ajoutez du code qui utilise la classe ResourceManager dans la Windows App SDK pour charger une ressource de chaîne.
Ajoutez un nouveau fichier Resources (.resw) à votre project (laissez le nom par défaut).
Le fichier de ressources étant ouvert dans l’éditeur, créez une nouvelle ressource de type chaîne avec les propriétés suivantes.
- Nom : Message
- Valeur : Bonjour, ressources!
Enregistrez le fichier de ressources.
Ouvrez le fichier de code Program.cs et remplacez la
Console.WriteLine("Hello, World!");ligne par le code suivant.
// Create a resource manager using the resource index generated during build. var manager = new Microsoft.Windows.ApplicationModel.Resources.ResourceManager("DynamicDependenciesTest.pri"); // Look up a string in the .resw file using its name. Console.WriteLine(manager.MainResourceMap.GetValue("Resources/Message").ValueAsString);- Cliquez sur Démarrer sans débogage (ou Démarrer le débogage) pour générer et exécuter votre application. Vous devriez voir la chaîne
Hello, resources!s'afficher correctement.
Si votre project est WPF
Pour une application Windows Presentation Foundation (WPF), consultez Utilisez la Windows App SDK dans une application WPF.
Rubriques connexes
Windows developer