Portieren einer vorhandenen Windows ML-App in ein NuGet-Paket (C++)
In diesem Tutorial erfahren Sie, wie Sie eine vorhandene WinML-Desktopanwendung portiert wird, um das weitervertreibbare NuGet-Paket zu verwenden.
Voraussetzungen
- Eine WinML-Anwendung. Wenn Sie eine neue Anwendung erstellen, werfen Sie einen Blick auf das Tutorial: Erstellen einer Windows Machine Learning Desktop Anwendung (C++)
- Windows 8.1 oder höher
- Visual Studio 2019 (oder Visual Studio 2017, Version 15.7.4 oder höher)
- Laden Sie das NuGet-Paket „CppWinRT“ herunter.
Fügen Sie das NuGet-Paket zu Ihrem Projekt hinzu.
Navigieren Sie im Visual Studio-Projekt für Ihre vorhandene Anwendung zum Projektmappen-Explorer, und wählen Sie NuGet-Pakete für Projektmappe verwalten aus. Wählen Sie das NuGet-Paket Microsoft.AI.MachineLearning
ab. Stellen Sie sicher, dass Sie das richtige Projekt hinzufügen, und drücken Sie Installieren.
Erstellen Sie anschließend erneut die Projektmappe. Das C++ /WinRT-Toolkit analysiert die neuen Header und Metadaten aus dem NuGet-Paket Microsoft.AI.MachineLearning
, wodurch Verwirrung im nächsten Schritt vermieden wird.
Neuen Header einschließen
Als bewährte Methode sollten Sie ein Steuerungsflags hinzufügen, damit Ihre App zwischen der Verwendung von In-Box-Windows ML und dem NuGet-Paket hin- und herwechseln kann.
#ifdef USE_WINML_NUGET
#include “winrt/Microsoft.AI.MachineLearning.h”
#endif
Namespace ändern
Anschließend erlauben Sie Windows::AI::Machinelearning
, mithilfe eines Steuerungsflags zum Microsoft::AI::MachineLearning
-Namespace zu wechseln. Indem Sie diese Änderung vornehmen, verwendet der Code ggf. automatisch das NuGet-Paket.
#ifdef USE_WINML_NUGET
Using namespace Microsoft::AI::MachineLearning
#else
Using namespace Windows::AI::MachineLearning
#endif
Präprozessordefinitionen ändern
Klicken Sie nun im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Eigenschaften aus. Wählen Sie im Fenster Eigenschaften die Seite Präprozessor aus. Bearbeiten Sie die Präprozessordefinitionen, und ändern Sie sie in USE_WINML_NUGET:_DEBUG
.
Speichern von Buildkonfigurationen
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und wählen Sie Eigenschaften aus. Wählen Sie im Fenster Eigenschaften die Option Configuration Manager aus. Öffnen Sie das Dropdownmenü für Aktive Projektmappenkonfiguration, und wählen Sie <Neu...> aus. Geben Sie den Namen der neuen Projektmappenkonfiguration ein, und stellen Sie sicher, dass Neue Projektmappenkonfiguration erstellen aktiviert ist. Jetzt können Präprozessordefinitionen in gewünschten Buildkonfigurationen gespeichert werden.
Erstellen und Ausführen
Die Anwendung kann das WinML NuGet-Paket nun verwenden.