將現有的 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.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 套件。