Porter une application Windows ML existante vers un package NuGet (C++)
Dans ce tutoriel, nous allons voir comment porter une application de bureau WinML existante pour utiliser le package NuGet redistribuable.
Prérequis
- Une application WinML. Si vous créez une application, consultez Tutoriel : créer une application bureautique Windows Machine Learning (C++)
- Windows 8.1 ou version ultérieure
- Visual Studio 2019 (ou Visual Studio 2017, version 15.7.4 ou ultérieure)
- Télécharger le package NuGet CppWinRT
Ajouter le package NuGet à votre projet
Dans le projet Visual Studio de votre application existante, accédez à l’Explorateur de solutions, puis sélectionnez Gérer les packages NuGet pour la solution. Sélectionnez le package NuGet Microsoft.AI.MachineLearning
. Vérifiez que vous l’ajoutez au bon projet, puis appuyez sur Installer.
Ensuite, générez votre solution. Le kit de ressources C++/WinRT analyse les nouveaux en-têtes et les métadonnées du package NuGet Microsoft.AI.MachineLearning
, ce qui évitera toute confusion à l’étape suivante.
Inclure le nouvel en-tête
Selon les bonnes pratiques, vous devez ajouter un indicateur de contrôle pour permettre à votre application de passer de l’utilisation du package Windows ML intégré à celle du package NuGet, et inversement.
#ifdef USE_WINML_NUGET
#include “winrt/Microsoft.AI.MachineLearning.h”
#endif
Modifier l’espace de noms
Ensuite, autorisez Windows::AI::Machinelearning
à basculer vers l’espace de noms Microsoft::AI::MachineLearning
à l’aide d’un indicateur de contrôle. Si vous apportez cette modification, votre code utilisera automatiquement le package NuGet, si vous en disposez.
#ifdef USE_WINML_NUGET
Using namespace Microsoft::AI::MachineLearning
#else
Using namespace Windows::AI::MachineLearning
#endif
Modifier les définitions du préprocesseur
À présent, cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions, puis sélectionnez Propriétés. Dans la fenêtre Propriétés, choisissez la page Préprocesseur. Modifiez les Définitions du préprocesseur en les remplaçant par USE_WINML_NUGET:_DEBUG
.
Enregistrer des configurations de build
Cliquez avec le bouton droit sur la solution dans l’Explorateur de solutions, puis sélectionnez Propriétés. Dans la fenêtre Propriétés, sélectionnez Configuration Manager. Ouvrez le menu déroulant pour Configuration de la solution active et choisissez <Nouveau...>. Entrez le nom de la nouvelle configuration de solution et assurez-vous que Créer des configurations de projet est coché. Maintenant, les définitions de préprocesseur peuvent être enregistrées dans les configurations de build souhaitées.
Créer et exécuter
Votre application utilise maintenant le package NuGet WinML.