Перенос существующего приложения Windows ML в пакет NuGet (C++)
В этом руководстве описан перевод существующего классического приложения WinML на использование распространяемого пакета NuGet.
Необходимые компоненты
- Приложение WinML. Если вы создаете новое приложение, см. руководство. Создание классического приложения windows Машинное обучение (C++)
- Windows 8.1 или выше
- Visual Studio 2019 (или Visual Studio 2017 версии 15.7.4 и выше)
- Скачайте пакет NuGet CppWinRT.
Добавление пакета NuGet в проект
В проекте Visual Studio для существующего приложения перейдите в обозреватель решений и щелкните элемент Управление пакетами NuGet для решения. Выберите пакет NuGet Microsoft.AI.MachineLearning
. Убедитесь, что вы добавляете пакет в требуемый проект, и нажмите кнопку Установить.
Затем снова выполните сборку решения. Набор средств C++/WinRT будет анализировать новые заголовки и метаданные из пакета NuGet Microsoft.AI.MachineLearning
, чтобы избежать путаницы на следующем шаге.
Добавление нового заголовка
Для удобства добавьте управляющий флаг, который позволяет приложению переключаться между использованием стандартного решения Windows ML и пакета NuGet.
#ifdef USE_WINML_NUGET
#include “winrt/Microsoft.AI.MachineLearning.h”
#endif
Изменение пространства имен
Затем разрешите Windows::AI::Machinelearning
переключиться на пространство имен Microsoft::AI::MachineLearning
с помощью управляющего флага. Если внести такое изменение, код будет автоматически использовать пакет NuGet, если это применимо.
#ifdef USE_WINML_NUGET
Using namespace Microsoft::AI::MachineLearning
#else
Using namespace Windows::AI::MachineLearning
#endif
Изменение определений препроцессора
В окне Обозреватель решений щелкните проект правой кнопкой мыши и выберите элемент Свойства. В окне Свойства перейдите на страницу Препроцессор. Замените значение в поле Определения препроцессора на USE_WINML_NUGET:_DEBUG
.
Сохранение конфигураций сборки
В Обозревателе решений щелкните решение правой кнопкой мыши и выберите элемент Свойства. В окне Свойства выберите элемент Диспетчер конфигураций. Откройте раскрывающееся меню Активная конфигурация решения и выберите элемент <Создать...>. Введите имя новой конфигурации решения и убедитесь, что установлен флажок Создать новые конфигурации проекта. Теперь определения препроцессора можно сохранить в нужных конфигурациях сборки.
Сборка и запуск
Теперь приложение успешно использует пакет NuGet WinML.