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.