Поделиться через


Перенос существующего приложения машинного обучения Windows в пакет 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 и пакета 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.

Сохранение конфигураций сборки

Щелкните правой кнопкой мыши на решении в Обозревателе решений и выберите Свойства. В окне свойств выберите Configuration Manager. Откройте раскрывающееся меню для конфигурации активного решения и выберите <Новый...>. Введите имя новой конфигурации решения и убедитесь, что установлен флажок Создать конфигурации проекта. Теперь определения препроцессора можно сохранить в требуемых конфигурациях сборки.

Сборка и запуск

Теперь приложение успешно использует пакет NuGet WinML.