インストーラーを理解するKnow your installer

この記事では、既存のインストーラーを MSIX に変換する前に理解しておく必要がある事項の一覧を示します。This article lists the things you need to know before you convert your existing installer into an MSIX. アプリケーションをパッケージ化プロセス用に準備するために多くの作業を行う必要はありませんが、以下のいずれかの項目がアプリケーションに適用される場合は、パッケージ化する前に対処する必要があります。You might not have to do much to get your application ready for the packaging process, but if any of the items below applies to your application, you need to address it before packaging.

  • __アプリケーションにサービスがあり__ます。Your application has a service. アプリケーションからサービスへの変換はサポートされていますが、サービスを変換する際の制限事項に留意することが重要です。We support converting applications with services, but its important to keep in mind the limitations to converting a service. 変換後、サービスを含む MSIX をインストールするには、管理者の昇格が必要です。After conversion, you will need admin elevation in order to install the MSIX that contains a service. MSIX パッケージ化ツールのバージョン1.2019.1220.0 以降のサービスを使用してアプリケーションを変換できます。また、Windows 10 の spring 2020 リリースから、MSIX with サービスをデプロイすることができます。You can convert an application with services beginning in version 1.2019.1220.0 of the MSIX Packaging Tool, and you can deploy the MSIX with services beginning in the spring 2020 release of Windows 10.

  • __インストーラーを再起動する必要があり__ます。Your installer requires a restart. インストーラーの再起動が必要な場合は、バージョン1.2019.701.0 以降の Msix パッケージ化ツールでサポートされています。If your installer requires a restart, this is supported in the MSIX Packaging Tool beginning in version 1.2019.701.0. インストーラーが再起動が必要であることを示す一般的ではない終了コードを返す場合は、MSIX パッケージングツールの設定の [再起動コードの再起動] セクションに追加する必要があります。If your installer returns an uncommon exit code to indicate it needs a restart, you should add it to the restart exit codes section of the MSIX Packaging Tool settings.

  • __.Net アプリケーションでは、4.6.2 より前のバージョンの .NET Framework が必要__です。Your .NET application requires a version of the .NET Framework earlier than 4.6.2. .NET アプリケーションをパッケージ化する場合は、アプリケーションのターゲット .NET Framework 4.6.2 以降であることをお勧めします。If you are packaging a .NET application, we recommend that your application target .NET Framework 4.6.2 or later. パッケージデスクトップアプリケーションをインストールして実行する機能は、Windows 10 バージョン 1607 (記念日更新プログラムとも呼ばれます) で初めて導入されました。この OS バージョンには .NET Framework 4.6.2 が既定で含まれています。The ability to install and run packaged desktop applications was first introduced in Windows 10, version 1607 (also called the Anniversary Update), and this OS version includes the .NET Framework 4.6.2 by default. 以降のバージョンの OS には、.NET Framework の新しいバージョンが含まれています。Later OS versions include later versions of the .NET Framework. 最新バージョンの Windows 10 に含まれている .NET のバージョンの完全な一覧については、こちらの記事を参照してください。For a full list of what versions of .NET are included in later versions of Windows 10, see this article.

    パッケージ化されたデスクトップアプリケーションで4.6.2 より前の .NET Framework のバージョンをターゲット設定することは、ほとんどの場合に機能します。Targeting versions of the .NET Framework earlier than 4.6.2 in packaged desktop applications is expected to work in most cases. ただし、4.6.2 よりも前のバージョンを対象としている場合は、パッケージ化されたデスクトップアプリケーションをユーザーに配布する前に、そのアプリケーションを完全にテストする必要があります。However, if you target an earlier version than 4.6.2, you should fully test your packaged desktop application before distributing it to users.

    • 4.0-4.6.1: これらのバージョンの .NET Framework を対象とするアプリケーションは、4.6.2 以降では問題なく実行されます。4.0 - 4.6.1: Applications that target these versions of the .NET Framework are expected to run without issues on 4.6.2 or later. そのため、これらのアプリケーションは、OS に付属しているバージョンの .NET Framework を使用して、Windows 10 バージョン1607以降では変更せずにインストールして実行する必要があります。Therefore, these applications should install and run without changes on Windows 10, version 1607 or later with the version of the .NET Framework that is included with the OS.

    • 2.0 および 3.5: このテストでは、これらのバージョンの .NET Framework を対象とするパッケージデスクトップアプリケーションは一般的に機能しますが、一部のシナリオではパフォーマンスの問題が発生する可能性があります。2.0 and 3.5: In our testing, packaged desktop applications that target these versions of the .NET Framework generally work but may exhibit performance issues in some scenarios. これらのパッケージアプリケーションをインストールして実行するには、 .NET Framework 3.5 機能をターゲットコンピューターにインストールする必要があります (この機能には .NET Framework 2.0 と3.0 も含まれます)。In order for these packaged applications to install and run, the .NET Framework 3.5 feature must be installed on the target machine (this feature also includes .NET Framework 2.0 and 3.0). また、これらのアプリケーションをパッケージ化した後、十分にテストする必要があります。You should also test these applications thoroughly after you package them.

  • __アプリケーションにドライバーが必要__です。Your application requires a driver. MSIX はドライバーをサポートしていません。MSIX does not support drivers.

  • __アプリケーションは、別のアプリとデータを共有することを目的として AppData フォルダーまたはレジストリに書き込み__ます。Your application writes to the AppData folder or to the registry with the intention of sharing data with another app. 変換後、AppData は、各アプリのプライベートストアであるローカルアプリデータストアにリダイレクトされます。After conversion, AppData is redirected to the local app data store, which is a private store for each app.

    アプリケーションから HKEY_LOCAL_MACHINE レジストリハイブに書き込まれるすべてのエントリは、分離されたバイナリファイルにリダイレクトされます。アプリケーションが HKEY_CURRENT_USER レジストリハイブに書き込むすべてのエントリは、アプリごとのプライベートな場所に配置されます。All entries that your application writes to the HKEY_LOCAL_MACHINE registry hive are redirected to an isolated binary file and any entries that your application writes to the HKEY_CURRENT_USER registry hive are placed into a private per-user, per-app location. ファイルとレジストリのリダイレクトの詳細については、「デスクトップ ブリッジの内側」をご覧ください。For more details about file and registry redirection, see Behind the scenes of the Desktop Bridge.

  • __アプリケーションは、アプリのインストールディレクトリに書き込み__ます。Your application writes to the install directory for your app. たとえば、アプリケーションは、exe と同じディレクトリに格納されているログファイルに書き込みます。For example, your application writes to a log file that you put in the same directory as your exe. フォルダーが保護されているため、これはサポートされていません。This isn't supported because the folder is protected. ローカルアプリデータストアなどの別の場所に書き込むことをお勧めします。We recommend writing to another location like the local app data store. 1809以降でこれを可能にする機能を追加しました。We have added a capability that allows this in 1809 and later.

  • __アプリケーションでは、現在の作業ディレクトリを使用__します。Your application uses the current working directory. 実行時に、パッケージ化されたデスクトップアプリケーションは、デスクトップで以前に指定したのと同じ作業ディレクトリを取得しません。LNK ショートカット。At runtime, your packaged desktop application won't get the same working directory that you previously specified in your desktop .LNK shortcut. アプリケーションが正しく機能するために適切なディレクトリが重要である場合は、実行時に CWD を変更する必要があります。You need to change your CWD at runtime if having the correct directory is important for your application to function correctly.

  • __アプリケーションによって、Windows サイドバイサイドフォルダーからアセンブリがインストール__され、読み込まれます。Your application installs and loads assemblies from the Windows side-by-side folder. たとえば、アプリケーションで C ランタイムライブラリ VC8 または VC9 を使用し、それらを Windows サイドバイサイドフォルダーから動的にリンクしているとします。つまり、コードでは、C:\Windows\WinSxS. などの共有フォルダーの共通 DLL ファイルを使用します。For example, your application uses C runtime libraries VC8 or VC9 and is dynamically linking them from Windows side-by-side folder, meaning your code is using the common DLL files from a shared folder, such as C:\Windows\WinSxS. これはサポートされていません。This is not supported. 再頒布可能なライブラリ ファイルをコードに直接リンクして、静的にリンクする必要があります。You will need to statically link them by linking to the redistributable library files directly into your code.

    注意

    アプリがインストールディレクトリに書き込むか、現在の作業ディレクトリを使用する必要がある場合は、パッケージサポートフレームワークを使用してランタイムの修正プログラムをパッケージに追加することも検討できます。If your app needs to write to the installation directory or use the current working directory, you can also consider adding a runtime fixup using the Package Support Framework to your package. 詳細については、こちらの記事を参照してください。For more details, see this article.