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

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

重要

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

Note

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

前提条件

手順

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

    注意

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

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

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

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

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

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

    注意

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

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

  7. アプリで、インストールWindows アプリ 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 フレームワーク パッケージと動的依存関係」を参照してください。