다음을 통해 공유


기존 Windows ML 앱을 NuGet 패키지에 이식(C++)

이 자습서에서는 기존 WinML 데스크톱 애플리케이션을 가져와서 재배포 가능 NuGet 패키지를 사용하도록 이식합니다.

필수 조건

  • WinML 애플리케이션입니다. 새 애플리케이션을 만드는 경우 자습서: Windows Machine Learning Desktop 애플리케이션 만들기(C++)를 참조하세요.
  • Windows 8.1 이상
  • Visual Studio 2019(또는 Visual Studio 2017, 버전 15.7.4 이상)
  • CppWinRT NuGet 패키지 다운로드

프로젝트에 NuGet 패키지 추가

기존 애플리케이션의 Visual Studio 프로젝트에서 솔루션 탐색기로 이동하여 솔루션의 NuGet 패키지 관리를 선택합니다. Microsoft.AI.MachineLearning NuGet 패키지를 선택합니다. 올바른 프로젝트에 추가하고 있는지 확인하고 설치를 누릅니다.

그 다음, 솔루션을 다시 빌드합니다. C++/WinRT 도구 키트는 Microsoft.AI.MachineLearning NuGet 패키지의 새 헤더와 메타데이터를 구문 분석하여 다음 단계에서 혼동을 방지합니다.

새 헤더 포함

모범 사례를 위해 앱이 기본 제공 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로 변경합니다.

빌드 구성 저장

솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 속성 창에서 구성 관리자를 선택합니다. 활성 솔루션 구성의 드롭다운 메뉴를 열고 <새로 만들기...>를 선택합니다. 새 솔루션 구성의 이름을 입력하고 새 프로젝트 구성 만들기가 선택되어 있는지 확인합니다. 이제 전처리기 정의를 원하는 빌드 구성에 저장할 수 있습니다.

빌드 및 실행

이제 애플리케이션은 WinML NuGet 패키지를 성공적으로 사용합니다.