既存の 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 パッケージから新しいヘッダーとメタデータを解析することにより、次の手順で混乱が生じないようにします。
新しいヘッダーを含める
ベスト プラクティスとして、コントロール フラグを追加し、アプリでインボックス 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 パッケージが正常に使用されるようになりました。