將現有的 Windows ML 應用程式移植到 NuGet 套件 (C++)
在本教學課程中,我們將採用現有的 WinML 桌面應用程式,並將其移植到使用 可再發行的 NuGet 套件。
先決條件
- WinML 應用程式。 如果您要建立新的應用程式,請參閱教學課程:建立 Windows Machine Learning 傳統型應用程式 (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 套件剖析新的標頭和元數據,以避免在下一個步驟中混淆。
包含新的標頭
為了達到最佳作法,您應該新增控件旗標,讓您的 app 在使用內建 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
。
儲存組建組態
在 [方案總管] 中,以滑鼠右鍵按兩下方案,然後選取 [屬性]。 在 [[屬性] 視窗中,選取 Configuration Manager。 開啟 [使用中方案組態] 的下拉功能表, 並選擇 [<[新增...]>。 輸入新的方案配置的名稱,請確認已勾選建立新項目組態。 現在,預處理器定義可以儲存在所需的組建組態中。
建置並執行
您的應用程式現在已成功使用 WinML NuGet 套件。