將現有的 Windows ML 應用程式移植到 NuGet 套件 (C++)

在本教學課程中,我們將現有的 WinML 傳統型應用程式移植為使用可轉散發的 NuGet 套件

必要條件

  • WinML 應用程式。 如果您要建立新的應用程式,請參閱教學課程:建立 Windows 機器學習傳統型應用程式 (C++)
  • Windows 8.1 或更高版本
  • Visual Studio 2019 (或 Visual Studio 2017,15.7.4 版或更新版本)
  • 下載 CppWinRT NuGet 套件

將 NuGet 套件新增至您的專案

在您現有應用程式的 Visual Studio 專案中,流覽至 [方案總管],然後選取 [管理解決方案的 NuGet 套件]。 選擇 Microsoft.AI.MachineLearningNuGet 套件。 請確定您正在新增至正確的專案,然後按下 [安裝]

接下來,再次建置您的解決方案。 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 套件。