分離された Win32 アプリを MSIX でパッケージ化する
既存の MSIX または Win32 アプリケーションを Win32 アプリ分離アプリケーションにパッケージ化する操作は、MSIX パッケージ ツール (MPT) を通じて行います。 なお、Win32 アプリ分離をサポートする MPT のバージョンは v1.2023.517.0 であり、このプロジェクトのリリース アセットで入手できます。 MPT のストア バージョンは、Win32 アプリ分離機能の目的で使用するには古くなっています。 MPT に関する追加ドキュメントはこちらでご覧いただけます。
MPT とプロファイラーのダウンロードは、Win32 アプリ分離 GitHub リポジトリの releases セクションで見つかります。
重要
この機能はプレビュー段階です: 一部の情報はリリース前の製品に関する内容であり、製品版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。
既存の Win32 インストーラーを MSIX アプリに変換する
左端の [アプリケーション パッケージ] を選択し、パッケージを作成する場所を選択します。 このフローは、"このコンピューターにパッケージを作成する" オプションに従います。
Note
これにより、手順 5 を完了すると、アプリは通常の Win32 アプリとしてインストールされます。
[MSIX パッケージング ツール ドライバー] フィールドのチェックが完了するまで待ちます。
参照ボタンを使用して、Win32 インストーラーに移動して選択します。 マニフェストを編集して再度署名する必要があるため、署名設定は空白のままにしておきます。
パッケージ情報を入力します。
通常通り Win32 インストーラーを実行します
メインのエントリ ポイント以外に追加のエントリ ポイントがある場合は、それらを起動するか参照します。 アプリの設定/構成/環境設定にファイルの種類の関連付けオプションがある場合は、それが MSIX で認識されるように、この手順で切り替えます。
パッケージ内にサービスがある場合は、同じプロセスを繰り返します。
[作成] をクリックすると、パッケージは完全信頼パッケージとして保存されます。 [パッケージ エディター] ボタンをクリックすると、メイン メニューから [パッケージ エディター] フローに移動します。 パッケージのサイズによっては、数分かかる場合があります。
既存の MSIX アプリを変換して分離実行できるようにする
右端のオプション [パッケージ エディター] を選択し、.msix ファイルを参照して、[パッケージを開く] ボタンをクリックします。
[マニフェスト ファイル] セクションまで下にスクロールし、[ファイルを開く] をクリックします。
マニフェストで、次の変更を加える必要があります。
Note
分離された Win32 アプリケーションは、同じパッケージ内の他のアプリケーションの種類と互換性がありません。
xmlns:previewsecurity2="http://schemas.microsoft.com/appx/manifest/preview/windows10/security/2"
要素に (まだ存在しない場合は)<Package>
を追加します。previewsecurity2
のIgnorableNamespaces
要素の末尾に<Package>
を追加します。
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
要素に (まだ存在しない場合は)<Package>
を追加します。uap10
のIgnorableNamespaces
要素の末尾に<Package>
を追加します。
<Dependencies>
でTargetDeviceFamily
を<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.25357.0" MaxVersionTested="10.0.25357.0" />
に変更します。Note
最小ビルドではすべての機能が利用できるわけではありません。詳細については、リリース ノートを参照してください。
<Application>
で、既存のエントリ ポイント/信頼レベル/ランタイム動作をuap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo"
に置き換えます。<Application>
拡張機能で、親EntryPoints=*
から継承されたExecutable=*
または<Application>
を削除します。desktop7:Scope="user"
の拡張要素にwindows.protocol
を追加します。
Note
アプリはパッケージ化された Win32 であるため、既定では、MPT によって自動的に
<rescap:Capability name="runFullTrust">
が<Capabilities>
に追加されます。 アプリにcomServer
やFirewallRules
など、ユーザーのグローバル状態に影響を与える可能性のある他の明示的な拡張機能がない限り、これを削除する必要があります。これらの拡張機能にはrunFullTrust
機能が必要であるためです。アプリが分離されたため、正しく機能するには追加の機能が必要になる可能性があります。 必要に応じて、サポートされている機能 ページを参照してください。
マニフェスト ウィンドウを保存して閉じます。 マニフェストにエラーがある場合は、MPT によって表示されます。 .msix ファイルを生成するには、[作成/保存] を選択します。 パッケージのサイズによっては、これには数分かかる場合があります。
- マニフェストにエラーがある場合は、イベント ビューアーの
Application and Services/Microsoft/Windows/AppxPackagingOM/Microsoft-Windows-AppxPackaging/Operational
に、より実用的なエラー メッセージが表示されます。
- マニフェストにエラーがある場合は、イベント ビューアーの
アプリケーション パッケージ マニフェストで宣言する必要がある可能性のある機能を識別する方法については、「アプリケーション機能プロファイラー」を参照してください。