次の方法で共有


インストーラーを把握する

この記事では、既存のインストーラーを MSIX に変換する前に知っておくべきことを示します。 アプリケーションをパッケージ化プロセスの準備をするために多くの作業を行う必要がない場合がありますが、以下のいずれかの項目がアプリケーションに適用される場合は、パッケージ化する前に対処する必要があります。

  • アプリケーションにサービスがあります。 サービスを使用した アプリケーションの変換はサポートされていますが、サービスの変換に関する 制限 事項に留意することが重要です。 変換後、サービスを含む MSIX をインストールするには、管理者の昇格が必要になります。 MSIX Packaging Tool のバージョン 1.2019.1220.0 以降のサービスを使用してアプリケーションを変換できます。また、Windows 10 の Spring 2020 リリース以降のサービスで MSIX を展開できます。

  • インストーラーを再起動する必要があります。 インストーラーで 再起動が必要な場合は、バージョン 1.2019.701.0 以降の MSIX パッケージ ツールでサポートされます。 インストーラーが再起動が必要であることを示す一般的でない終了コードを返す場合は、MSIX パッケージ ツール設定の 再起動終了コード セクションに追加する必要があります。

  • .NET アプリケーションには、4.6.2 より前のバージョンの .NET Framework が必要です。 .NET アプリケーションをパッケージ化する場合は、アプリケーションで .NET Framework 4.6.2 以降をターゲットにすることをお勧めします。 パッケージ化されたデスクトップ アプリケーションをインストールして実行する機能は、Windows 10 バージョン 1607 (Anniversary Update とも呼ばれます) で初めて導入され、この OS バージョンには既定で .NET Framework 4.6.2 が含まれています。 以降の OS バージョンには、.NET Framework の新しいバージョンが含まれます。 以降のバージョンの Windows 10 に含まれる .NET のバージョンの完全な一覧については、 この記事を参照してください。

    パッケージ化されたデスクトップ アプリケーションで 4.6.2 より前のバージョンの .NET Framework を対象とすることは、ほとんどの場合に機能することが期待されます。 ただし、4.6.2 より前のバージョンを対象とする場合は、パッケージ化されたデスクトップ アプリケーションをユーザーに配布する前に完全にテストする必要があります。

    • 4.0 - 4.6.1: これらのバージョンの .NET Framework を対象とするアプリケーションは、4.6.2 以降で問題なく実行される予定です。 そのため、これらのアプリケーションは、OS に含まれている .NET Framework のバージョンを使用して、Windows 10 バージョン 1607 以降で変更を加えずにインストールして実行する必要があります。

    • 2.0 および 3.5: テストでは、これらのバージョンの .NET Framework を対象とするパッケージ化されたデスクトップ アプリケーションは一般的に機能しますが、一部のシナリオではパフォーマンスの問題が発生する可能性があります。 これらのパッケージ化されたアプリケーションをインストールして実行するには、 .NET Framework 3.5 機能 をターゲット コンピューターにインストールする必要があります (この機能には、.NET Framework 2.0 と 3.0 も含まれます)。 また、パッケージ化した後で、これらのアプリケーションを徹底的にテストする必要があります。

  • アプリケーションにはドライバーが必要です。 MSIX はドライバーをサポートしていません。

  • アプリケーションは、別のアプリとデータを共有することを目的として、AppData フォルダーまたはレジストリに書き込みます。 変換後、AppData は、各アプリのプライベート ストアであるローカル アプリ データ ストアにリダイレクトされます。

    アプリケーションが HKEY_LOCAL_MACHINE レジストリ ハイブに書き込むすべてのエントリは分離されたバイナリ ファイルにリダイレクトされ、アプリケーションが HKEY_CURRENT_USER レジストリ ハイブに書き込むエントリは、ユーザーごとのプライベートのアプリごとの場所に配置されます。 ファイルとレジストリのリダイレクトの詳細については、「 デスクトップ ブリッジの背後にある」を参照してください。

  • アプリケーションがアプリのインストール ディレクトリに書き込みます。 たとえば、アプリケーションは、exe と同じディレクトリに配置したログ ファイルに書き込みます。 フォルダーが保護されているため、これはサポートされていません。 ローカル アプリ データ ストアなどの別の場所に書き込むことをお勧めします。 1809 以降でこれを可能にする機能が追加されました。

  • アプリケーションは現在の作業ディレクトリを使用します。 実行時に、パッケージ化されたデスクトップ アプリケーションは、以前にデスクトップで指定したのと同じ作業ディレクトリを取得しません。LNK ショートカット。 アプリケーションが正しく機能するために正しいディレクトリが重要な場合は、実行時に CWD を変更する必要があります。

  • アプリケーションは、Windows のサイド バイ サイド フォルダーからアセンブリをインストールして読み込みます。 たとえば、アプリケーションは C ランタイム ライブラリ VC8 または VC9 を使用し、Windows のサイド バイ サイド フォルダーから動的にリンクしています。つまり、コードでは C:\Windows\WinSxS などの共有フォルダーの共通 DLL ファイルを使用しています。 これはサポートされていません。 コードに再頒布可能なライブラリファイルを直接リンクすることで、静的にリンクする必要があります。

その他の考慮事項

  • 適切なアーキテクチャでインストーラーを再パッケージ化する。 インストーラーが x86 コンピューターにインストールされることを意図している場合。 x86 コンピューターでインストーラーを再パッケージ化してください。 これは、x64 マシンを対象としたインストーラーに適用されます。

    アプリがインストール ディレクトリに書き込む必要がある場合、または現在の作業ディレクトリを使用する必要がある場合は、 パッケージ サポート フレームワーク を使用してパッケージにランタイム修正プログラムを追加することも検討できます。 詳細については、こちらの記事を参照してください。