次の方法で共有


分離された Win32 アプリを MSIX でパッケージ化する

既存の MSIX または Win32 アプリケーションを Win32 アプリ分離アプリケーションにパッケージ化する操作は、MSIX パッケージ ツール (MPT) を通じて行います。 なお、Win32 アプリ分離をサポートする MPT のバージョンは v1.2023.517.0 であり、このプロジェクトのリリース アセットで入手できます。 MPT のストア バージョンは、Win32 アプリ分離機能の目的で使用するには古くなっています。 MPT に関する追加ドキュメントはこちらでご覧いただけます。

MPT とプロファイラーのダウンロードは、Win32 アプリ分離 GitHub リポジトリの releases セクションで見つかります。

重要

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

既存の Win32 インストーラーを MSIX アプリに変換する

  1. 左端の [アプリケーション パッケージ] を選択し、パッケージを作成する場所を選択します。 このフローは、"このコンピューターにパッケージを作成する" オプションに従います。

    Note

    これにより、手順 5 を完了すると、アプリは通常の Win32 アプリとしてインストールされます。

    MSIX パッケージング ツールのメイン ページを示すスクリーンショット

  2. [MSIX パッケージング ツール ドライバー] フィールドのチェックが完了するまで待ちます。

    MSIX パッケージング ツールの [新しいパッケージの作成] ページを示すスクリーンショット

  3. 参照ボタンを使用して、Win32 インストーラーに移動して選択します。 マニフェストを編集して再度署名する必要があるため、署名設定は空白のままにしておきます。

    MSIX パッケージング ツールのインストーラーの選択ページを示すスクリーンショット

  4. パッケージ情報を入力します。

    MSIX パッケージング ツールのパッケージ情報ページを示すスクリーンショット

  5. 通常通り Win32 インストーラーを実行します

  6. メインのエントリ ポイント以外に追加のエントリ ポイントがある場合は、それらを起動するか参照します。 アプリの設定/構成/環境設定にファイルの種類の関連付けオプションがある場合は、それが MSIX で認識されるように、この手順で切り替えます。

  7. パッケージ内にサービスがある場合は、同じプロセスを繰り返します。

  8. [作成] をクリックすると、パッケージは完全信頼パッケージとして保存されます。 [パッケージ エディター] ボタンをクリックすると、メイン メニューから [パッケージ エディター] フローに移動します。 パッケージのサイズによっては、数分かかる場合があります。

    MSIX パッケージング ツールでパッケージを作成するときの最終的なパッケージ作成ページを示すスクリーンショット

既存の MSIX アプリを変換して分離実行できるようにする

  1. 右端のオプション [パッケージ エディター] を選択し、.msix ファイルを参照して、[パッケージを開く] ボタンをクリックします。

    MSIX パッケージング ツールで [パッケージを開く] をクリックする前のメイン ページを示すスクリーンショット

  2. [マニフェスト ファイル] セクションまで下にスクロールし、[ファイルを開く] をクリックします。

    MSIX パッケージング ツールで [パッケージを開く] をクリックした後のパッケージ情報ページを示すスクリーンショット

    マニフェストで、次の変更を加える必要があります。

    Note

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

    • xmlns:previewsecurity2="http://schemas.microsoft.com/appx/manifest/preview/windows10/security/2" 要素に (まだ存在しない場合は) <Package> を追加します。
      • previewsecurity2IgnorableNamespaces 要素の末尾に <Package> を追加します。
    • xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" 要素に (まだ存在しない場合は) <Package> を追加します。
      • uap10IgnorableNamespaces 要素の末尾に <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> に追加されます。 アプリに comServerFirewallRules など、ユーザーのグローバル状態に影響を与える可能性のある他の明示的な拡張機能がない限り、これを削除する必要があります。これらの拡張機能には runFullTrust 機能が必要であるためです。

    アプリのマニフェスト ファイルの内容を示すスクリーンショット

  3. アプリが分離されたため、正しく機能するには追加の機能が必要になる可能性があります。 必要に応じて、サポートされている機能 ページを参照してください。

  4. マニフェスト ウィンドウを保存して閉じます。 マニフェストにエラーがある場合は、MPT によって表示されます。 .msix ファイルを生成するには、[作成/保存] を選択します。 パッケージのサイズによっては、これには数分かかる場合があります。

    • マニフェストにエラーがある場合は、イベント ビューアーの Application and Services/Microsoft/Windows/AppxPackagingOM/Microsoft-Windows-AppxPackaging/Operational に、より実用的なエラー メッセージが表示されます。
  5. アプリケーション パッケージ マニフェストで宣言する必要がある可能性のある機能を識別する方法については、「アプリケーション機能プロファイラー」を参照してください。

Win32 アプリ分離の概要

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

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