フレームワークに依存するパッケージ 化されたアプリの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 App SDK フレームワーク パッケージをデプロイする
  2. デプロイ API を呼び出す

前提条件

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

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

安定バージョン

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

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

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

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

プレビュー バージョン

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

デプロイ API を呼び出す

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

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

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

重要

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

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

  • GetStatus メソッドでは、現在読み込まれている Windows App SDK ランタイムの現在のデプロイ状態が返されます。 このメソッドを使用して、現在のアプリで Windows App SDK の機能を使用する前に Windows App 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 アプリのパッケージ化、デプロイ、クエリのトラブルシューティング」を参照してください。

エラー コードによって十分な情報が提供されない場合は、詳細なイベント ログでさらに多くの診断情報を見つけることができます。

診断できないエラーが発生した場合は、Microsoft で問題を調査できるように、エラー コードとイベント ログと共に問題を報告してください。