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

この記事では、Windows App SDK を使用するmsix以外のパッケージアプリを他のコンピューターにデプロイする方法に関するガイダンスを提供します。

概要

パッケージ化されていないアプリでは、Windows app sdk の動的な依存関係のサポートを使用して、Windows app sdk framework パッケージとその他の msix フレームワークパッケージに対する依存関係を動的に取得します。 動的な依存関係を使用すると、パッケージ化されていないアプリケーションで MSI やインストーラーなどの既存の展開メカニズムを維持し、アプリケーションで Windows アプリ SDK を利用できるようになります。 動的な依存関係は、パッケージ化されたアプリケーションとパッケージ化されていないアプリの両方で使用できますが、主にアンパッケージアプリで使用することを意図しています。 アプリが Windows app sdk を使用するときに実行する依存関係の詳細については、 Windows app sdk のデプロイアーキテクチャに関するページを参照してください。

パッケージ化されていないアプリには、フレームワークメインおよびダイナミック依存関係有効期間マネージャー (ddlm)パッケージを含む、Windows App SDK パッケージの依存関係をデプロイするための2つのオプションがあります。

  • Windows app sdk インストーラー (.exe): サイレントインストーラーには、Windows App sdk の msix パッケージのコピーが含まれています。 既定では、インストーラーによってシステムアーキテクチャが自動的に検出され、 X64 、、またはアーキテクチャのいずれかに MSIX パッケージがインストールされ X86ARM64 ます。
  • パッケージを直接インストールする: 既存のセットアップまたは MSI ツールを実行し、Windows App SDK 用の msix パッケージをインストールすることができます。

前提条件

  • 最新の Windows App SDK インストーラーと msix パッケージをダウンロードします。 Windows app sdk のすべてのバージョンのダウンロードについては、「 Windows app sdk のダウンロード」を参照してください。

    最新のインストーラー msix パッケージのダウンロード

  • Windows App SDK の実験的バージョンとプレビューバージョンでは、ランタイムをインストールするためにサイドローディングが有効になっている必要があります。

    • サイドローディングは Windows 10 バージョン2004以降で自動的に有効になります。

    • 開発用コンピューターまたは展開コンピューターでWindows 11が実行されている場合は、サイドローディングが有効になっているかどうかを確認します。

      1. 設定を開きます。
      2. >>[プライバシーセキュリティ] をクリックします。
      3. 開発者モード設定が有効になっていることを確認します ([開発者モード] 設定には、サイドローディングとその他の機能も含まれます)。
    • 開発用コンピューターまたは展開コンピューターがWindows 10 バージョン1909またはそれ以前のバージョンを実行している場合は、サイドローディングが有効になっているかどうかを確認します。

      1. 設定を開きます。
      2. [ >>更新] をクリックします。
      3. [ 開発者の機能を使用 ] セクションで、[ サイドロードアプリ ] または [ 開発者モード ] の設定が選択されていることを確認します ( 開発者モード の設定には、サイドローディングとその他の機能も含まれます)。

      Note

      コンピューターがエンタープライズ環境で管理されている場合、コンピューターには、これらの設定を変更する機能を無効にするポリシーが設定されている可能性があります。 その場合、ユーザーまたはアプリが Windows app SDK ランタイムをインストールしようとすると、エラーが発生することがあります。 この場合、サイドローディングまたは開発者モードを有効にするには、IT Professional に連絡する必要があります。

.exe インストーラーを使用して Windows App SDK をデプロイする

Windows app sdk のサイレントインストーラーを実行して、Windows app sdk をデプロイできます。

  • 1.0 安定版またはプレビュー版を使用している場合はWindowsAppRuntimeInstall.exeします。
  • 1.0 の試験段階を使用している場合はWindowsAppSDKInstall.exe
  • バージョン0.8 以前を使用している場合はProjectReunionInstall.exeします。

次のような出力が表示されます。

Deploying package: Microsoft.WindowsAppRuntime.1.0_0.318.928.0_x64__8wekyb3d8bbwe
Package deployment result : 0x0

Deploying package: Microsoft.WindowsAppRuntime.1.0_0.318.928.0_x86__8wekyb3d8bbwe
Package deployment result : 0x0

Deploying package: MicrosoftCorporationII.WindowsAppRuntime.Main.1.0_0.318.928.0_x64__8wekyb3d8bbwe
Package deployment result : 0x0
Provisioning result : 0x0

Deploying package: Microsoft.WindowsAppRuntime.Singleton_0.318.928.0_x64__8wekyb3d8bbwe
Package deployment result : 0x0
Provisioning result : 0x0

Deploying package: Microsoft.WinAppRuntime.DDLM.0.318.928.0-x6_0.318.928.0_x64__8wekyb3d8bbwe
Package deployment result : 0x0
Provisioning result : 0x0

Deploying package: Microsoft.WinAppRuntime.DDLM.0.318.928.0-x8_0.318.928.0_x86__8wekyb3d8bbwe
Package deployment result : 0x0
Provisioning result : 0x0

All install operations successful.

WindowsAppRuntimeInstall.exe --quietまた、 WindowsAppSDKInstall.exe --quietProjectReunionInstall.exe --quiet Windows App SDK のバージョンに応じて、ユーザーの操作なしでインストーラーを実行し、またはまたはを使用してすべてのテキスト出力を抑制することもできます。

インストールが完了したら、アンパッケージされたアプリを実行できます。 Windows app sdk を使用するアンパッケージアプリをビルドして実行する方法の例については、「チュートリアル: Windows アプリ sdk を使用するアンパッケージアプリをビルドしてデプロイする」を参照してください。

Windows app SDK インストーラーをアプリのセットアップにチェーンする

アプリのカスタムセットアッププログラムがある場合は、アプリのセットアッププロセスで Windows アプリ SDK のセットアッププロセスをチェーン (インクルード) することができます。 現在、Windows App SDK インストーラーには既定の ui が用意されていないため、セットアップのカスタム ui を使用してチェーンする必要があります。

Windows App SDK のセットアップをサイレントで起動および追跡しながら、 ShellExecuteを使用してセットアップの進行状況を独自に表示することができます。 Windows app SDK .exe、Windows アプリの msix バンドルをサイレントにアンパックし、 AddPackageAsyncメソッドを呼び出してインストールを完了します。 これは、.NET、Visual C++、DirectX など、使用している可能性のある他のランタイムインストーラーとよく似ています。

セットアッププログラムから Windows App sdk インストーラーを実行する方法を示すコード例については、「Windows app sdk のインストーラー機能テスト」のruninstaller関数を参照してください。

インストーラーのサンプル

セットアップ中にコンソールウィンドウをポップアップ表示せずに Win32 セットアッププログラムから WindowsAppRuntimeInstaller を起動する方法に関するその他のガイダンスについては、使用可能なサンプルを参照してください。

トラブルシューティング

戻りコード

次の表は、Windows App SDK .exe インストーラーの最も一般的なリターンコードを示しています。 これらのリターン コードは、すべてのバージョンのインストーラーで共通です。

リターン コード 説明
0x0 パッケージのインストールまたはプロビジョニングが正常に完了しました。
0x80073d06 1つまたは複数のパッケージをインストールできませんでした。
0x80070005 アプリが管理者特権で実行されていないか、インストールを行っているユーザーに管理者特権がないため、システム全体のインストールまたはプロビジョニングができませんでした。

インストール エラー

Windows App SDK インストーラーによってインストール中にエラーが返された場合は、問題を説明するエラーコードが返されます。

  • 一般的なエラーコードの一覧を参照してください。
  • エラーコードで十分な情報が得られない場合は、詳細 なイベントログでさらに詳しい診断情報を確認できます。
  • 問題を調査できるように、エラーコードとイベントログに 問題 を報告してください。

セットアッププログラムから直接 Windows App SDK msix パッケージを配置する

エンドユーザーにデプロイするために Windows app SDK インストーラーを使用する代わりに、アプリのプログラムまたは MSI を使用して msix パッケージを手動で展開することができます。 このオプションは、より詳細な制御を必要とする開発者に最適です。

セットアッププログラムで msix パッケージをインストールする方法を示す例については、Windows App SDK インストーラーコードの「 install. .cpp 」を参照してください。

デプロイメント シナリオ

  • Windows App SDK のインストールシステム全体: システム全体のインストールでは、今後追加される新しいユーザーも含め、すべてのユーザーのマシンが変更されます。 アプリが管理者特権で実行されていて、インストールを行っているユーザーが管理者権限を持っている場合、WindowsAppRuntimeInstall.exe は、 ProvisionPackageForAllUsersAsyncを呼び出して、Windows app SDK パッケージをシステム全体に登録します。 システム全体の登録に失敗した場合、インストールは現在のユーザーに対してのみ実行されます。 管理された Enterprise 環境では、IT 管理者は通常どおり、すべてのユーザーに対してプロビジョニングできます。

  • Windows app sdk インストーラーによって再配布されたアーキテクチャ: Windows App sdk インストーラーは、、およびアーキテクチャで使用でき x64ARM64 ます。 インストーラーの各バージョンには、すべてのアーキテクチャの MSIX パッケージも含まれています。 たとえば、x86 WindowsAppRuntimeInstall.exe を x64 または ARM64 デバイスで実行すると、インストーラーによってそのデバイスアーキテクチャのパッケージが展開されます。

  • すべての Windows App SDK msix パッケージは、コンピューターに既にインストールされています: msix パッケージは、ディスク上のコピーが1つだけ含まれるシステム全体の場所にインストールされます。 アプリが Windows app SDK のインストールを試行した場合、すべての msix パッケージの依存関係が既にコンピューターにインストールされていると、インストールは実行されません。

  • 1 つ以上の Windows App sdk msix パッケージがコンピューターにインストールされていません: Windows app sdk をデプロイする場合、すべての依存関係がインストールされ、エンドユーザーエクスペリエンスが中断されないように、すべての msix パッケージ (framework、main、singleton、ddlm) を常にインストールしようとします。

実行時の機能の使用

  • Windows app sdk の機能: アプリがアンパッケージされている場合は、Windows アプリ sdk (WinUI、app ライフサイクル、mrt.dll Core、DWriteCore など) を使用するには、まずブートストラップ APIを使用する必要があります。 この機能により、パッケージ化されていないアプリが実行時に Windows App SDK framework パッケージに対する依存関係を動的に取得できるようになります。 詳細については、「実行時に Windows App sdk framework パッケージを参照する」および「チュートリアル: Windows アプリ sdk を使用するアンパッケージアプリをビルドしてデプロイする」を参照してください。

  • 他のフレームワークパッケージの機能: ブートストラップ api に加えて、Windows App SDK には、動的な依存関係 APIを実装する C/c + + 関数と WinRT クラスの幅広いセットも用意されています。 この API は、実行時に任意のフレームワークパッケージを動的に参照するために使用されるように設計されています。 Windows App SDK framework パッケージ以外のフレームワークパッケージを動的に参照する場合は、動的な依存関係 API を使用する必要があります。

詳細については、「 デスクトップアプリから MSIX フレームワークパッケージを動的に使用する」を参照してください。