次の方法で共有


Visual Studio で Win32 アプリ分離アプリケーションをパッケージ化する

このページでは、Win32 アプリ分離を活用するためにアプリケーションをパッケージ化するために必要なすべての内容を説明します。

重要

この機能はプレビュー段階です: 一部の情報はリリース前の製品に関する内容であり、製品版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。

前提 条件

分離された Win32 アプリにアプリケーションをパッケージ化するには、次のものが必要です。

  • Visual Studio バージョン 17.10.2 以上

ステップ 1 - Windows 11 SDK 10.0.26100.0 (またはそれ以上) を含む必要なワークロードを Visual Studio にインストールします。

Visual Studio インストーラーを開き、既存のインストールを変更します。 [ワークロード] タブで、[Windows アプリケーション開発] ボックスをオンにします (オプションで、C++ での開発の場合は [C++ WinUI アプリ開発ツール] ボックスをオンにします)。 Windows 11 SDK 10.0.26100.0 (またはそれ以上) も必要です。

Visual Studio にインストールする必要があるワークロードを示すスクリーンショット

ステップ2 - アプリ プロジェクトを作成する

Visual Studio で、テンプレート "Windows アプリケーション パッケージ プロジェクト (デスクトップの WinUI 3) でパッケージ化された空のアプリ" を使用して、新しい C# または C++ プロジェクトを作成します。 [作成] をクリックし、[ターゲット プラットフォーム バージョン (TPV)] と [ターゲット プラットフォームの最小バージョン (TPMinV)] として 10.0.26100.0 (またはそれ以降) を選択します。

Visual Studio の Windows パッケージ プロジェクトを使用した空のアプリのテンプレートを示すスクリーンショット

Visual Studio の新規プロジェクト画面を示すスクリーンショット

Visual Studio の新しい WinUI プロジェクト画面を示すスクリーンショット

ステップ 3 - NuGet を使用して Microsoft.Windows.SDK.BuildTools バージョン 10.0.26100.1742 以降をインストールする

[プロジェクト -> NuGet パッケージの管理] に移動して、 Microsoft.Windows.SDK.BuildTools バージョン 10.0.26100.1 (またはそれ以降) をインストールします。

Visual Studio の NuGet パッケージ管理画面を示すスクリーンショット

Visual Studio の NuGet 画面に Microsoft.Windows.SDK.BuildTools パッケージが表示されているスクリーンショット

Visual Studio の NuGet 画面にビルド ツール パッケージの情報を表示するスクリーンショット

ステップ 4 - Packaging.appxmanifest ファイルとプロジェクト ファイルを編集する

マニフェスト ファイルで、次の変更を行う必要があります。

: 分離された win32 アプリケーションは、同じパッケージ内の他の種類のアプリケーションと互換性がありません。

  • xmlns:uap18="http://schemas.microsoft.com/appx/manifest/uap/windows10/18" 要素に (まだ存在しない場合は) <Package> を追加します。

    • uap18IgnorableNamespaces 要素の末尾に <Package> を追加します。
  • <Dependencies>TargetDeviceFamily<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.26100.0" MaxVersionTested="10.0.26226.0" /> に変更します。

    Note

    最小ビルドではすべての機能が利用できるわけではありません。詳細については、リリース ノートを参照してください。 さらに、次のマニフェストの変更により、アプリは分離されたアプリになりますが、Win32 アプリの分離がサポートされていないオペレーティング システムでは引き続き Win32 アプリとして実行できます。

  • <Application> で、既存のエントリ ポイント/信頼レベル/ランタイム動作を EntryPoint="Windows.FullTrustApplication"uap18:EntryPoint="Isolated.App"uap18:TrustLevel="appContainer" uap18:RuntimeBehavior="appSilo" に置き換えます。

  • <Application> 拡張機能で、親 EntryPoints=* から継承された Executable=* または <Application> を削除します。

  • desktop7:Scope="user" の拡張要素に windows.protocol を追加します。

    Note

    アプリはパッケージ化された Win32 であるため、既定では Visual Studio によって自動的に <rescap:Capability name="runFullTrust"><Capabilities> に追加されます。 アプリに comServerFirewallRules など、ユーザーのグローバル状態に影響を与える可能性のある他の明示的な拡張機能がない限り、これを削除する必要があります。これらの拡張機能には runFullTrust 機能が必要であるためです。

Visual Studio でのパッケージ アプリ構成を示すスクリーンショット

  • ターゲット プラットフォームのバージョン行 Visual Studio でのプロジェクト ファイル構成を示すスクリーンショット の直後の wapproj ファイルに <AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion> を追加します。

ステップ 5 - アプリ パッケージをビルドして公開する

Visual Studio ソリューションをビルドします。

Visual Studio でのソリューションのビルドを示すスクリーンショット

[アプリ パッケージの作成] ウィザードを使用してアプリ パッケージを公開します。

Visual Studio のアプリ パッケージ作成ウィザードを示すスクリーンショット

Visual Studio のアプリ パッケージ ウィザードの作成手順を示すスクリーンショット

アプリ パッケージを公開すると、表示される出力場所には、MSIX パッケージがバージョン別に公開されるルート ディレクトリが示されます。 バージョン フォルダーを開いて、アプリをインストールするための Install.ps1 ファイルを見つけます。

Visual Studio のウィザードによってパッケージが正常に作成されたことを示すスクリーンショット

アプリ分離の概要

アプリケーション機能プロファイラー

MSIX を使用して分離された Win32 アプリをパッケージ化する