パッケージ アプリ用 Windows App SDK 展開ガイド

この記事では、Windows App SDK を使用するmsixパッケージアプリを他のコンピューターに配置するためのガイダンスを提供します。

既定では、Visual Studio 用の Windows App SDK 拡張機能に用意されているWinUI プロジェクトテンプレートのいずれかを使用してプロジェクトを作成すると、アプリを msix パッケージにビルドするように構成されたWindows アプリケーションパッケージ Projectがプロジェクトに含まれます。 このプロジェクトを構成して、アプリの MSIX パッケージを作成する方法の詳細については、「Visual Studio でのデスクトップまたは UWP アプリのパッケージ化」を参照してください。 アプリの MSIX パッケージを作成したら、他のコンピューターに展開するためのオプションがいくつかあります。 詳細については、「MSIX の展開を管理する」を参照してください。

アプリをデプロイ用に構成する前に、 Windows app sdk のデプロイアーキテクチャを確認して、Windows app sdk を使用するときにパッケージアプリが実行する依存関係の詳細を確認してください。 これらの依存関係には、Microsoft によって署名および公開されている フレームワークメイン、および シングルトン パッケージが含まれます。

Windows App SDK framework パッケージをデプロイする

Windows app sdk framework パッケージには、実行時に使用される Windows app sdk バイナリが含まれており、アプリケーションと共にインストールされます。 このフレームワークには、さまざまなバージョンの Windows App SDK について、さまざまな配置要件があります。

プレビューバージョン

開発用コンピューターで Visual Studio または Windows app sdk NuGet パッケージの Windows app sdk 拡張機能のプレビューリリースチャネルバージョンをインストールすると、ビルド時に NuGet パッケージの依存関係として、プレビューバージョンのフレームワークパッケージが配置されます。

安定したバージョン

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

ただし、アプリケーションパッケージを手動でビルドする場合は、アプリケーション (パッケージ) の wapproj で PackageReference を宣言する必要があります。 バージョン固有の手順については、「既存のプロジェクトを Windows appsdk の最新リリースに更新する」を参照してください。

   <ItemGroup>
       <PackageReference Include="Microsoft.ProjectReunion" Version="[0.8.0]">
       <IncludeAssets>build</IncludeAssets>
       </PackageReference>
   </ItemGroup>

このように宣言された依存関係の結果として、アプリが別のコンピューターに配置されたときにフレームワークパッケージがインストールされます。

Windows App SDK のメインおよびシングルトンパッケージをデプロイする

メインパッケージには、プッシュ通知などのアプリ間で仲介されるアウトプロセスサービスが含まれています。また、このパッケージは、Microsoft Store によって提供されるフレームワークにも必要です。 シングルトンパッケージでは、プッシュ通知などの機能のためにアプリ間で仲介される、実行時間の長い1つのプロセスがサポートされています。

これらのパッケージが必要なシナリオ: メインパッケージとシングルトンパッケージは、開発者がプッシュ通知などのフレームワークに含まれていない機能を使用する場合にのみ必要であり、パッケージアプリを再配布しなくても、ストアによってフレームワークが自動的に更新されます。

デプロイ API を使用する

Windows アプリケーションモデルはフレームワークの依存関係をサポートしていますが、他のメインパッケージ (Windows app SDK のメインパッケージとシングルトンパッケージ) への依存関係を宣言するパッケージアプリ (メインパッケージ) はサポートしていません。 そのため、アプリと共にインストールされるフレームワークパッケージには、メインパッケージとシングルトンパッケージが埋め込まれていますが、パッケージアプリでは、Microsoft Windows のデプロイ APIを使用する必要があります。 コンピューターにインストールされているパッケージを取得するための ApplicationModel. WindowsAppRuntime 名前空間。

deployment API は、Windows App SDK framework パッケージによって提供されます。 アプリのプロセスが初期化された後、アプリがメインパッケージとシングルトンパッケージでアプリ SDK のランタイムコンテンツ Windows 使用する前に、API を呼び出す必要があります。

重要

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

Deployment API の主なメソッドは、 Deploymentmanagerクラスの静的なGetStatusメソッドとInitializeメソッドです。

  • GetStatusメソッドは、現在読み込まれている Windows App SDK ランタイムの現在のデプロイステータスを返します。 このメソッドを使用して、現在のアプリで Windows app sdk の機能を使用する前に Windows app sdk ランタイムパッケージをインストールするために必要な作業があるかどうかを確認します。
  • Initializeメソッドは、必要なすべてのパッケージが、読み込まれた Windows App SDK ランタイムに必要な最小バージョンに存在するかどうかを確認します。 パッケージの依存関係が不足している場合は、それらの不足しているパッケージを登録しようとします。

デプロイ API のサンプル

DeploymentManager クラスの GetStatus メソッドと Initialize メソッドの使用方法に関するその他のガイダンスについては、使用可能なサンプルを参照してください。

アドレスのインストールエラー

配置 API でメインパッケージとシングルトンパッケージのインストール中にエラーが発生した場合は、問題を説明するエラーコードが返されます。

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

エラーコードで十分な情報が得られない場合は、詳細 なイベントログでさらに詳しい診断情報を確認できます。

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