Frameworkアプリ)などのデスクトップアプリを作成したら、アプリを公開するためにはインストーラーを作成する必要が出てきます。デスクトップアプリのインストーラーを作成するときに使用する技術としてはいくつかあります。Installer技術InstallScript技術MSIX技術などがあります。多くの場合は前者二つのいずれかが利用されます。Installer技術はマイクロソフトが2000年頃に導入したインストール技術です。ファイルのコピー・削除・更新、レジストリの更新、COM登録やNTサービスの登録など、アプリのインストーラーとして必要となる機能は、標準で用意されています。Action)を利用します。カスタムアクションは、外部プログラム(EXEファイル)の呼び出し、外部関数(DLLファイル)の呼び出しやスクリプト(VBScriptなど)の呼び出しなどの方法で機能を実現します。InstallScript技術InstallScript技術は、InstallShieldというインストーラー作成ツールでのみ利用できるInstallShieldのための独自技術です。InstallScript技術は歴史が長いため、長くの間、インストーラーのデファクトスタンダードとなっていました。当初のInstallScript技術には、ファイルのコピー・削除・更新、レジストリの更新などの機能も独自のランタイムエンジンに実装されていました。Installer技術を利用しています。Installerのカスタムアクションでスクリプトエンジンを追加しています。2018など)でMSIXという新しいインストール技術が発表されました。Bridgeをベースにしたもののようです。Tool」は、2018年8月時点でも、まだプレビュー段階であるため、一般用途に使うにはまだ早い感じがします。msmのファイルとなります。それぞれのファイルの概要は以下の通りです。msiファイル:フルインストーラー。このファイル単体でアプリをインストールすることができます。mspファイル:差分インストーラー。アプリをインストール済みの環境に修正を加えることができます。差分情報のみのためファイルサイズは小さくなります。フルインストーラーでインストールされている環境にのみ、このファイルを使ってインストールできます。このファイルはマイクロソフトのツールを使用して二つのmsiファイルの差分情報から作成します。mstファイル:インストーラーをローカライズ情報などで変換するための変換ファイル。アプリをインストール済みの環境に適用するものではなく、インストール時にmsiファイルやmspファイルに適用するファイルとなります。msiファイルを英語版として作成し、UIの文字列リソースのみをmstファイルとして作成すると、英語版msiファイルに日本語mstファイルを適用してインストールを実行すると日本語のUIでインストーラが実行されることになります。msmファイル:マージモジュールというインストーラーに組み込むためのインストーラーの部品。msiファイルを作成するときに取り込んで使用します。msmファイル単体ではインストーラーとして機能しないため、msmファイルをアプリのユーザーに配ることはしません。msmファイルは単体で実行できないのみで、中身はインストーラーそのものです。マイクロソフトのVC++のランタイムライブラリなどは、アプリのインストーラーに取り込めるようにmsm形式で提供されています。多くの場合、msiファイルのみを使用します。msiファイルの形式msi形式のインストーラーは、すべてのファイルをmsiファイル内に含む単一msiファイルのインストーラーとして作成すること、もしくは、msiファイルと複数のファイルで構成されるインストーラーとして作成すること、のどちらの形式でも作成できます。CD-ROMなどで配布するのであれば、複数ファイル形式のインストーラーでもよいですが、インターネットから配布することを考えると単一msiファイル形式で作成することを強く勧めます。EXEファイル形式また、インストーラー作成ツールによっては、exeファイル形式にパッケージするものもあります。そもそも、msi形式のインストーラーは、単一ファイルで作成できるので、EXEファイル形式にパッケージするくらいなら、単一msiファイル形式で作成するのが良いです。いうは、msiファイル形式であれば、近年、様々なインストーラーで問題となっているDLLハイジャッキングの脆弱性に該当しなくなるためです。単一EXEファイル形式にパッケージする場合は、そのパッケージャーがDLLハイジャッキングの脆弱性がないことを確認しましょう。7以前では、Windows環境によって、DLLハイジャッキングの脆弱性に対応できていたりできていなかったりします。XP以降のすべてのWindows環境で既知のDLLハイジャッキングの脆弱性に対応できています。Installer技術では、各種インストール情報をテーブルという概念に基づいて保持します。Installer技術のルールに従ったテーブルを完成させることを意味します。toolset)などがあります。OrcaOrcaは、msi/msm/msp形式ファイルを直接開き、テーブルの内容を確認・修正することができます。SDKの一部としてマイクロソフトからリリースされました。(10.0.17134.0)に同梱されているものが最新です。SDKをインストールしても、Orcaのインストーラーが配置されるだけで、Orca自体はインストールされません。Kits\10\bin\10.0.17134.0\x86\”のフォルダーにOrca-x86_en-us.msiというファイル名で配置されているので、これをインストールするとOrcaが利用できるようになります。Tableを表示InstallShieldInstallShieldは、1990年代からWindows向けインストーラー作成ツールとしてデファクトスタンダードとなっているツールです。InstallShieldのロゴInstallShieldは当初はInstallScriptという独自技術のみで構成されていました。Installer技術のみを利用したインストーラーも作成できます。このツールでは、Orcaと同じようにテーブル形式で直接編集することもできますが、GUI形式で情報を構造化した状態で編集できます。このツールは商用ツールであり、ひとつの言語(日本語のみ)に対応したものでも128,000円からと高価です。2018が最新版です。toolset)WiXは、マイクロソフトの有志による開発を発祥とし、オープンソース化され、無料で使用できるツールです。2004年に1.0がリリースされました。現在(2018年8月時点)は、2018年1月にリリースされた3.11.1が最新版です。WiXのロゴWiXでは、作成するインストーラーの情報をXML形式のテキストファイルで定義します。作成するXMLファイルのは以下のようなファイルとなります。Extensionもあります。デスクトップアプリのインストーラーを作成するのには、何を使えばいのでしょう。私はどのツールも使ったことがあります。私見ですが、以下のように考えます。Orcaこのツールを使っていちからインストーラーを作成するのには適していません。作成したmsi/msp/msmファイルを調べたり、解析したりするために使うのにはとても便利なツールです。Installer技術の仕組みを隠ぺいし、直感的なGUIで編集が行えるなど高機能です。ツールの価格が10万円以上します。このコストが許されるなら、インストーラの作成時間も短縮できて良いと思います。Installer技術に詳しくなくても、インストーラーが作成できるので、インストーラー作成に必要な人材の敷居を下げると思います。WiX無料で使えるのが一番のメリットであると思います。XML形式のファイルで作成できるので、テキストエディターがあれば編集できます。Installer技術の仕組みをそのままXML形式で表現しているのに近いです。Installer技術の仕組みを理解していないと、中途半端なインストーラーになる可能性があります。Installer技術のことを理解しているのであればこのツールも選択肢となります。