次の方法で共有


フレームワーク依存のパッケージ アプリの Windows アプリ SDK 展開ガイド

この記事では、Windows アプリ SDKを使用するフレームワーク依存パッケージ アプリの展開に関するガイダンスを提供します ( MSIX とはを参照)。 他のフレームワークに依存するパッケージ化オプションに関する同等のトピックは、外部の場所Windows アプリ SDKパッケージ化またはパッケージ化されていないフレームワーク依存アプリの展開ガイドです

概要

既定では、Visual Studio で WinUI 3 テンプレートのいずれかを使用してプロジェクトを作成するとプロジェクトは、単一プロジェクトの MSIX (単一プロジェクト MSIX を使用したアプリのパッケージ化 を参照) または Windows アプリケーション パッケージ プロジェクトを使用して MSIX パッケージにアプリをビルドするように構成されます (「 Visual Studio で MSIX パッケージ化用にデスクトップ アプリケーションを設定するを参照してください)。 その後、「 Visual Studio でデスクトップまたは UWP アプリをパッケージ化するの手順を使用して、アプリの MSIX パッケージをビルドできます。 アプリの MSIX パッケージをビルドした後、MSIX 展開を 管理するオプションがいくつかあります

パッケージ アプリがWindows アプリ SDKを使用するときに必要になるパッケージの詳細については、Windows アプリ SDKデプロイ アーキテクチャに関するページを参照してください。 これには、 FrameworkMainSingleton パッケージが含まれます。これらはすべて Microsoft によって署名および発行されます。 パッケージ アプリをデプロイするための主な要件は 2 つあります。

  1. Windows アプリ SDK フレームワーク パッケージを展開します
  2. Deployment API を呼び出します

前提条件

  • パッケージ 化されたアプリの場合、VCLibs フレームワーク パッケージの依存関係が要件です。 詳細については、デスクトップ ブリッジC++ ランタイム フレームワーク パッケージに関するページを参照してください。
  • C#。 .NET 6 または .NET 6 以降が必要です。 詳しくは、「.NET のダウンロード」をご覧ください。

Windows App SDK フレームワーク パッケージをデプロイする

Windows アプリ SDK フレームワーク パッケージには、実行時に使用されるWindows アプリ SDK バイナリが含まれており、アプリケーションと共にインストールされます。 フレームワークには、Windows アプリ SDKのチャネルごとに異なるデプロイ要件があります。

安定バージョン

開発用コンピューターにWindows アプリ SDK NuGet パッケージの安定したリリース バージョン (Stable チャネル リリース ノートを参照) をインストールし、提供されている WinUI 3 プロジェクト テンプレートのいずれかを使用してプロジェクトを作成すると、生成されたパッケージ マニフェストには、フレームワーク パッケージへの依存関係を指定する PackageDependency 要素が含まれます。

ただし、別の Windows アプリケーション パッケージ プロジェクトを使用してアプリ パッケージを手動でビルドする場合は、次のように、Application (package).wapproj ファイルで PackageReference を宣言する必要があります。

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

そのパッケージの依存関係により、アプリが別のコンピューターに展開されるときにフレームワーク パッケージがインストールされます。

プレビュー バージョン

開発用コンピューターに Windows アプリ SDK NuGet パッケージのプレビュー リリース バージョン (Preview チャネル リリース ノートを参照) をインストールすると、ビルド時に、Windows アプリ SDK フレームワーク パッケージのプレビュー バージョンが NuGet パッケージの依存関係として展開されます。

Deployment API を呼び出す

Windows アプリ SDKの初期化も参照してください。

Deployment API は、Windows アプリ SDK フレームワーク パッケージによって提供され、Microsoft.Windows.ApplicationModel.WindowsAppRuntime 名前空間で使用できます。 Windows アプリケーション モデルでは、Main パッケージと Singleton パッケージへの依存関係の宣言はサポートされていません。 そのため、デプロイ API は次の理由で必要です。

  1. フレームワーク パッケージに含まれていない機能 (プッシュ通知など) に対して Singleton パッケージをデプロイする場合。
  2. メイン パッケージを展開するには、Microsoft Store からフレームワーク パッケージの自動更新を有効にします。

ストアを通じて配布パッケージ アプリの場合、開発者は Framework パッケージの配布を担当します。 重要なサービス更新プログラムが配信されるように、Deployment API を呼び出することをお勧めします。 フレームワーク パッケージの外部で機能を使用する場合 (プッシュ通知など)、Singleton パッケージを展開する必要があることに注意してください (これは、Deployment API を使用するか、独自のインストール方法を使用して MSIX パッケージを再配布することによって行うことができます)。

重要

Windows アプリ SDK バージョン 1.0 では、完全信頼または packageManagement制限付き機能を持つパッケージ アプリにのみ、Deployment API を使用して Main パッケージと Singleton パッケージの依存関係をインストールするアクセス許可が付与されます。 部分的に信頼されているパッケージ アプリのサポートは、今後のリリースで予定されています。

アプリのプロセスが初期化された後、アプリが Singleton パッケージを使用Windows アプリ SDKランタイム機能 (プッシュ通知など) を使用する前に、Deployment API を呼び出す必要があります。 Deployment API の主なメソッドは、DeploymentManager クラスの静的GetStatus メソッドと Initialize メソッドです。

  • GetStatus メソッドは、現在読み込まれているWindows アプリ SDK ランタイムの現在のデプロイ状態を返します。 現在のアプリでWindows アプリ SDK機能を使用する前に、ランタイム パッケージWindows アプリ SDKインストールするために必要な作業があるかどうかを確認するには、このメソッドを使用します。
  • Initialize メソッドは、現在読み込まれているWindows アプリ SDK ランタイムで必要な最小バージョンに必要なすべてのパッケージが存在するかどうかを確認します。 パッケージの依存関係がない場合、メソッドは不足しているパッケージの登録を試みます。 Windows アプリ SDK 1.1 以降、Initialize メソッドでは、Windows アプリ SDKランタイム パッケージを強制的にデプロイするオプションもサポートされています。 これにより、 Main および Singleton ランタイム パッケージのプロセスがシャットダウンされ、サービスが中断されます (たとえば、プッシュ通知はこの期間中に通知を配信しません)。

デプロイ API サンプル アプリ

DeploymentManager クラスの GetStatus メソッドと Initialize メソッドの使用方法に関する追加のガイダンスについては、使用可能なサンプル アプリを調べます。

インストール エラーに対処する

Windows アプリ SDK ランタイム パッケージのインストール中に Deployment API でエラーが発生した場合は、問題を説明するエラー コードが返されます。

たとえば、アプリが完全な信頼を持っていない場合や、 packageManagement 制限された機能がない場合、 ACCESS_DENIED エラー コードが表示されます。 発生する可能性があるその他のエラー コードとその考えられる原因については、「 Windows アプリのパッケージ化、展開、およびクエリのトラブルシューティング」を参照してください

エラー コードで十分な情報が提供されない場合は、詳細なイベント ログで詳細な診断情報を確認できます ( 診断情報の取得を参照してください)。

診断できないエラーが発生した場合は、問題を調査できるように、 WindowsAppSDK GitHub リポジトリ エラー コードとイベント ログで問題を報告します。