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