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 (またはそれ以上) も必要です。
ステップ2 - アプリ プロジェクトを作成する
Visual Studio で、テンプレート "Windows アプリケーション パッケージ プロジェクト (デスクトップの WinUI 3) でパッケージ化された空のアプリ" を使用して、新しい C# または C++ プロジェクトを作成します。 [作成] をクリックし、[ターゲット プラットフォーム バージョン (TPV)] と [ターゲット プラットフォームの最小バージョン (TPMinV)] として 10.0.26100.0 (またはそれ以降) を選択します。
ステップ 3 - NuGet を使用して Microsoft.Windows.SDK.BuildTools バージョン 10.0.26100.1742 以降をインストールする
[プロジェクト -> NuGet パッケージの管理] に移動して、 Microsoft.Windows.SDK.BuildTools バージョン 10.0.26100.1 (またはそれ以降) をインストールします。
ステップ 4 - Packaging.appxmanifest ファイルとプロジェクト ファイルを編集する
マニフェスト ファイルで、次の変更を行う必要があります。
注: 分離された win32 アプリケーションは、同じパッケージ内の他の種類のアプリケーションと互換性がありません。
xmlns:uap18="http://schemas.microsoft.com/appx/manifest/uap/windows10/18"
要素に (まだ存在しない場合は)<Package>
を追加します。uap18
のIgnorableNamespaces
要素の末尾に<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>
に追加されます。 アプリにcomServer
やFirewallRules
など、ユーザーのグローバル状態に影響を与える可能性のある他の明示的な拡張機能がない限り、これを削除する必要があります。これらの拡張機能にはrunFullTrust
機能が必要であるためです。
- ターゲット プラットフォームのバージョン行
の直後の wapproj ファイルに
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
を追加します。
ステップ 5 - アプリ パッケージをビルドして公開する
Visual Studio ソリューションをビルドします。
[アプリ パッケージの作成] ウィザードを使用してアプリ パッケージを公開します。
アプリ パッケージを公開すると、表示される出力場所には、MSIX パッケージがバージョン別に公開されるルート ディレクトリが示されます。 バージョン フォルダーを開いて、アプリをインストールするための Install.ps1 ファイルを見つけます。