既存のプロジェクトで Windows App SDK を使用する

既存のデスクトップ プロジェクトに Windows App SDK を使用するには、Windows App SDK NuGet パッケージの最新バージョンをプロジェクトにインストールします。 パッケージ化されていないアプリ (展開テクノロジに MSIX を使用していないアプリ) から Windows App SDK を使用するには、この手順に従う必要がありますが、パッケージ化されたアプリでも同様に実行できます。

重要

UWP アプリで作業している場合は、「UWP から Windows App SDK に移行する」を参照してください。

Note

この手順は、C# .NET 6 (以降) および C++ デスクトップ プロジェクトでサポートされています。 これらのプロジェクトでは、安定リリース チャネルプレビュー リリース チャネル、または試験的リリース チャネルの NuGet パッケージを使用できます。

前提条件

手順

  1. Visual Studio で既存のプロジェクトを開きます。

    注意

    C# デスクトップ プロジェクトがある場合は、Windows ランタイム API を呼び出すことができるように、プロジェクト ファイル内の TargetFramework 要素が net6.0-windows10.0.19041.0 などのWindows 10固有のモニカーに割り当てられていることを確認します。 詳細については、「[デスクトップ アプリで Windows ランタイム API を呼び出す](/windows/apps/desktop/modernize/desktop-to-uwp-enhance)」を参照してください。 さらに、17763 をターゲットとするアプリをブロックする既知の問題があるため、18362 以降を対象にする必要があります。

  2. パッケージ参照が有効になっていることを確認します。

    1. Visual Studio で、[ツール] -> [NuGet パッケージ マネージャー] -> [パッケージ マネージャー設定] の順にクリックします。
    2. [既定のパッケージ管理形式][PackageReference] が選択されていることを確認します。
  3. ソリューション エクスプローラーでプロジェクトを右クリックし、 [NuGet パッケージの管理] を選択します。

  4. [NuGet パッケージ マネージャー] ウィンドウで、ウィンドウの上部近くにある [プレリリースを含める] チェックボックスをオンにし、[参照] タブを選択して、次のいずれかのパッケージを検索します。

    • 1.0 またはそれ以降のリリースのいずれかをインストールするには、Microsoft.WindowsAppSDK パッケージを検索します。
    • 0.8 リリースのいずれかをインストールするには、Microsoft.ProjectReunion パッケージを検索します。
  5. 適切な Windows App SDK NuGet パッケージが見つかったら、パッケージを選択し、[NuGet パッケージ マネージャー] ウィンドウの右側のウィンドウで [インストール] をクリックします。

    インストールされているWindows アプリ SDK NuGet パッケージのスクリーンショット

    注意

    Windows App SDK NuGet パッケージには、Windows App SDK 内の特定のコンポーネントの実装を含む他のサブパッケージ (たとえば、Microsoft.WindowsAppSDK.FoundationMicrosoft.WindowsAppSDK.WinUI など) が含まれています。 これらのサブパッケージは、プロジェクト内の特定のコンポーネントのみを参照するように個別にインストールすることはできません。 メインの Windows App SDK NuGet パッケージをインストールする必要があります。このパッケージには、すべてのコンポーネントが含まれています。

  6. パッケージ化されていないアプリの場合のみ: パッケージ化されていないアプリで Windows アプリ SDK API とコンポーネントを使用できるようにするには、アプリで最初に Windows アプリ SDK ランタイムを読み込んで、Windows アプリ SDK フレームワーク パッケージを参照するように呼び出す必要があります。 詳細については、「外部の場所またはパッケージ化されていないアプリにWindows アプリ SDKランタイムを使用する」および「チュートリアル: 外部の場所でパッケージ化されたアプリでブートストラップ API を使用するか、Windows アプリ SDKを使用するパッケージ化されていないアプリでブートストラップ API を使用する」を参照してください。

  7. これで、インストールしたリリース チャネルで利用できる Windows App SDK API とコンポーネントをアプリで使用できるようになりました。 利用可能な機能の一覧については、リリース チャネルに関するページを参照してください。

詳細情報

既存のプロジェクトが C++ プロジェクトであり、Windows アプリ SDKで Windows ランタイム API を呼び出す場合は、C++/WinRT のサポートを追加する必要があります。 C++/WinRT、XAML、VSIX 拡張機能、NuGet パッケージの Visual Studio サポートに関するページを参照してください。 Microsoft.Windows.CppWinRT NuGet パッケージに関する情報を探します。 そのパッケージがないと、プロジェクトはWindows アプリ SDKでWindows ランタイム API の名前空間ヘッダー ファイルを見つけることができません。

Windows アプリ SDK コンポーネントを使用しようとしたときに "Class not registered" エラーが発生した場合は、Windows アプリ SDK Framework パッケージに動的な依存関係をプロジェクトに追加する必要があります。 詳細については、「 MSIX フレームワーク パッケージと動的依存関係」を参照してください。