プログラム配布用の Windows インストーラーを作成ための WiX をセットアップする

ページ作成日 :

現在表示しているページは選択中の表示言語には対応しておりません。

環境

Visual Studio
  • Visual Studio Community 2017
  • Visual Studio Community 2019
WiX Toolset
3.11.2

※他のバージョンでも動作しますが未確認です

はじめに

Windows 向けに作成したアプリケーションは様々な方法で配布する手段があります。 作成したプログラム「.exe」を直接配布してしまう方法もありますが、この場合プログラムをユーザーの任意の場所に置かれてしまい正しく動作しなかったり、セットアップ時点で実行させたい処理などを入れられなかったりします。

そのため、市販のアプリケーションなど規模が大きかったり複雑に連携されるような大きなプログラムを導入させる場合、通常はインストーラーなどを用意してユーザーにインストールさせます。

この記事では、よくインストールで使用される Windows インストーラー「MSI」形式のインストーラーを作成する手順を掲載しています。 MSI 形式のインストーラーは Visual Studio の標準機能でも作成することができますが、ここでは「WiX」を使用して作成しています。 WiX を使用すると Visual Studio の標準機能よりもより細かく設定したインストーラーを作成することができます。

ここでは全機能を紹介することはできませんが、まずはインストーラー作成の一連の流れを把握して他に機能を追加したい場合は公式サイトで調べてみるのがよいでしょう。

事前準備

  • Visual Studio をインストール済みであること。
  • Windows に管理者権限でサインインしてください。
  • Windows に .NET Framework 3.5.1 をインストールしていること。

WiX Toolset のインストール

以下の公式サイトを開き、WiX Toolset build tools をダウンロードします。

image

開いた先のページに「wix311.exe」があるのでダウンロードします。(バージョンはアップデートにより変わる場合があります)

image

保存を押して実行します。既定ではダウンロードフォルダに保存されます。(直接実行した場合は別フォルダに保存されます)

image

image

WiX Toolset build tools 実行後、以下のエラーが出る場合

image

.NET Framework 3.5.1 ランタイムをインストールする必要があります。最新の Windows 10 では標準インストールされておらず、最新の Visual Studio をインストールした場合でもインストール時に明示的に SDK をインストールしない限りはインストールされません。

インストールする場合は以下のリンク先からランタイムをダウンロードしてインストールしてください。

ちなみにダウンロードしたファイルは build tools でありまだインストールはされていません。「Install」をクリックしてインストールしてください。

image

image

インストールが完了すると左上のメッセージが「Successfully installed」になります。「Exit」をクリックして終了します。

image

スタートメニューにフォルダが追加されていることが分かります。

image

WiX Toolset Visual Studio Extension のインストール

続いて「WiX Toolset Visual Studio Extension」をインストールします。先ほどと同じ以下のページからファイルをダウンロードしてインストールします。ここでは Visual Studio 2019 版を入れています。

image

image

ダウンロードしたファイルを実行します。

image

image

「Install」ボタンをクリックします。

image

「Close」ボタンをクリックしてインストールを完了します。

image

これでセットアップは完了です。

Wix Edit のダウンロード

必須ではありませんが、Wix の設定編集を行うときに使うと多少便利になります。以下のサイトからダウンロードしてください。インストーラー、または単体 exe どちらのバージョンもあります。 一応本 Tips では Wix Edit を使用して説明しています。

image

まとめ

これで WiX のセットアップは完了しました。 次回は簡単なインストーラーを作成したいと思います。