既存の 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
に変更します。
ビルド構成の保存
ソリューション エクスプローラーの でソリューションを右クリックし、[プロパティ] 選択します。 プロパティ ウィンドウで、Configuration Managerを選択します。 [アクティブなソリューション構成] のドロップダウン メニュー 開き、[ <新規...>] を選択します。 新しいソリューション構成の名前を入力し、[新しいプロジェクト構成の作成] チェック ボックスがオンになっていることを確認します。 これで、プリプロセッサ定義を目的のビルド構成に保存できるようになりました。
ビルドと実行
アプリケーションで WinML NuGet パッケージが正常に使用されるようになりました。