Windows App SDK 展開の概要

Windows アプリ SDK を展開する方法は 2 つあります。

  • フレームワーク依存。 アプリは、Windows アプリ SDK ランタイムおよび/またはターゲットマシンに表示されるフレームワーク パッケージに依存します。 フレームワークに依存する展開は、マシン リソースと保守容易性を効率的に使用するためのWindows アプリ SDK の既定の展開 モードです。
  • 自己完結型。 アプリに、Windows アプリ SDK のアプリとの依存関係が含まれています。 自己完結型展開は、Windows アプリ SDK 1.1 Preview 1 で導入された展開オプションです。

このトピックでは、パッケージ アプリ外部の場所を持つパッケージ アプリパッケージ化されていないアプリという用語も使用します。 これらの用語の説明については、「展開の概要」を参照してください。

フレームワークに依存するアプリを展開する 自己完結型の展開
長所 小規模な展開。 ご自分のアプリとその他の依存関係のみが配布されます。 Windows アプリ SDK ランタイムとフレームワーク パッケージは、パッケージ化されたフレームワークに依存するアプリによって自動的にインストールされます。または、外部の場所でパッケージ化されているか、パッケージ化されていないフレームワークに依存するアプリによって、Windows アプリ SDK ランタイム インストーラーの一部としてインストールされます。

提供可能。 Windows アプリ SDK に対するサービス更新プログラムは、Windows アプリ SDK フレームワーク パッケージを介して自動的にインストールされます。アプリの操作は必要ありません。
Windows App SDK バージョンをコントロールする。 ご自分のアプリと共に展開する Windows アプリ SDK のバージョンを制御できます。 Windows アプリ SDK のサービス更新は、再構築して再頒布しない限り、アプリに影響しません。

その他のアプリから分離されています。 アプリとユーザーは、アプリ全体をアンインストールしないと、Windows アプリ SDK の依存関係をアンインストールできません。

XCopy による展開。 Windows アプリ SDK の依存関係はアプリによって実行されるため、追加のインストール要件を必要とせずに、ビルド出力を xcopy で実行するだけでアプリを配置できます。
短所 追加のインストール依存関係。 Windows アプリ SDK ランタイムやフレームワーク パッケージをインストールする必要があり、アプリのインストールが複雑になる可能性があります。

共有された依存関係。 共有依存関係がアンインストールされるリスク。 共有コンポーネントをアンインストールするアプリまたはユーザーは、依存関係を共有するその他のアプリのユーザー エクスペリエンスに影響を与える可能性があります。

互換性テスト。 Windows アプリ SDK の更新プログラムにサービスを提供すると、破壊的変更が発生するリスク。 サービス更新プログラムは後方互換対応がある必要がある一方で、回帰が導入される可能性があります。
大規模な展開 (パッケージ化されていないアプリのみ)。 アプリには Windows アプリ SDK が含まれているため、必要なダウンロード サイズとハード ドライブの領域は、フレームワークに依存するバージョンの場合よりも大きくなります。

パフォーマンス (パッケージ化されていないアプリのみ)。 コード ページはその他のアプリと共有されないため、読み込みに時間がかかり、より多くのメモリを使用します。

サービス不可能。 アプリと共に配布される Windows アプリ SDK バージョンは、アプリの新しいバージョンをリリースすることによってのみ更新できます。 Windows アプリ SDK のサービス更新プログラムをアプリに統合する責任があります。

また、最初の WinUI 3 プロジェクトを作成するか、既存のプロジェクトで Windows App SDK を使用します。

フレームワークに依存する展開の詳細

アプリを展開用に構成する前に、Windows アプリ SDK が使用される場合にアプリにより取得される依存関係について詳しくは、Windows アプリ SDK の展開アーキテクチャに関するページを参照してください。

パッケージ アプリ

フレームワークに依存するパッケージ アプリを使用することを選択した場合 (展開の概要を参照)、アプリを使用して Windows アプリ SDK ランタイムを展開する手順を次に示します。

外部の場所でパッケージ化、またはパッケージ化されていないアプリ

外部の場所でフレームワーク依存のパッケージ化されたアプリ、またはフレームワークに依存するパッケージ化されていないアプリ (展開の概要を参照) を使用することを選択した場合は、アプリを使用して Windows アプリ SDK ランタイムを展開する方法を次に示します。

自己完結型の展開の詳細

自己完結型アプリの Windows アプリ SDK 展開ガイドを参照してください。

Windows アプリ SDK を初期化する

Windows アプリ SDK を初期化する方法は、アプリをパッケージ化するかどうか、およびパッケージ化する方法、および Windows アプリ SDK ランタイムを基準にして展開する方法によって異なります。 アプリに適用される以下のセクションを使用します。

パッケージ アプリ

アプリの展開方法 初期化方法
フレームワーク依存 展開 API の呼び出しを参照してください。
自己完結型 初期化は必要ありません。

パッケージ化されていないアプリ、外部の場所でパッケージ化されたアプリ

アプリの展開方法 初期化方法
フレームワーク依存 外部の場所でパッケージ化されたアプリまたはパッケージ化されていないアプリでブートストラップ API を使用するを参照してください。
自己完結型 自動 UndockedRegFreeWinRT サポートのオプトアウト (またはオプトイン) を参照してください。