【2023年】これからブログを始める人へおすすめの書籍

Kissy

【Windows Installer】シンプルなmsiを作る方法

作成: 更新:

【Windows Installer】シンプルなmsiを作る方法
Visual Studio Installer Projectを使ってシンプルなインストーラー(以降、msiと記載)を作る方法を記載します。

msiではファイルのインストールやレジストリの登録、ショートカット作成などを実行することができます。これ以外にもカスタムアクションを使えば、独自のインストール処理(例えば、ファイアーウォールの例外登録など)を実行することも可能です。

この記事では、まずはシンプルにファイルをインストールするだけの簡単なmsiを作る方法を記載します。

前提

あらかじめ、以下をインストールします。

空のインストーラーの作成手順

まずはインストールしても何もしないインストーラーを作る方法を記載します。

  1. Visual Studioを起動し、[新しいプロジェクトを作成]を選択します。
     
     Visual Studioを起動
  2. [Setup Project]を選択し、[次へ]をクリックします。
     新しいプロジェクトの作成
  3. [プロジェクト名]、[場所]、[ソリューション名]を入力し、[次へ]をクリックします。
     ここでは、[プロジェクト名]と[ソリューション名]はSimpleSetupとしています。
     新しいプロジェクトを構築します
     すると、何もしない空のプロジェクトが作成されます。
     プロジェクトが作成される
  4. [ソリューションエクスプローラー]でプロジェクト(ここではSimpleSetup)を選択し、[Author]、[Manufacture]、[ProductName]を修正します。
     プロジェクトのプロパティ
  5. これでビルドすれば空のインストーラーが作成されます。

ファイルを1つインストールするインストーラの作成手順

続いて、空のインストーラプロジェクトを、ファイルを1つインストールするように修正していきます。

  1. インストールするファイルを用意します。
     ここでは、プロジェクトフォルダは以下に[Files]フォルダを作成し、Readme.txtファイルを作成します。この後、Readme.txtファイルをインストールするインストーラーを作っていきます。
     
     インストールするファイルを用意する
  2. [File System]でインストールするファイルを追加します。
     [File System]ではインストールするファイルやショートカットを管理する画面です。今回、Readme.txtはProgram Filesフォルダにインストールしたいので、[File System]-[Application Folder]を右クリック→[Add]-[ファイル]を選択します。
     ファイルを追加する
  3. ファイル選択画面で、インストールするファイルを選択します。
     先ほど作成したReadme.txtを選択し、[開く]をクリックします。
     ファイルを選択する
  4. これでビルドすれば、ファイルをインストールするインストーラーの完成です。

解説

プロジェクトのプロパティについて

上記手順では、プロジェクトのプロパティで[Author]、[Manufacture]、[ProductName]を変更しました。これらは、[プログラムと機能]などの画面に表示されるものですが、これら以外に重要なプロパティがあるので、以下に記載します。

UpgradeCode, ProductCode, Version

これら3つのプロパティは、アップグレードを決定する重要なプロパティになります。

UpgradeCodeにはGUIDを設定します。このUpgradeCodeを変更すると別製品と認識され、UpgradeCode変更前の製品と変更後の製品が同時にインストール可能になります。一般的なバージョンアップしていく製品ではUpgradeCodeは変更しません。

ProductCodeにはGUIDを設定します。後述するメジャーアップデートを行う際に、Versionと一緒に変更します。

Versionにはドット区切りのバージョンを設定します。Windows Installerではドット区切りの3つめまでの数値のみ認識し、4つ目の数値は無視されます。

TargetPlatform

インストール対象のアーキテクチャ(x86/x64)を設定します。インストールするプログラムがx86かx64かで設定を変える必要があります。これによって、Program Filesフォルダのパスが変わってきます。

アップグレードについて

Windows Installerには3つのアップグレードがあります。

メジャーアップグレード

UpgradeCodeは変更せず、ProductCodeVersionを変更した場合にWindows Installerはメジャーアップグレードと判断します。メジャーアップグレードと判断されると、古いバージョンがアンインストールされ、新しいバージョンがインストールされます。

ここで注意が必要なのは、古いバージョンのアンインストールには古いバージョンのmsiが使用されてアンインストールされ、新しいバージョンのインストールには新しいバージョンのmsiが使用される、ということです。

一般的な製品でバージョンアップをする場合は、常にメジャーアップグレードをしていくと良いでしょう。

マイナーアップグレード

UpgradeCodeProductCodeは変更せず、Versionを変更した場合にマイナーアップグレードと判断します。マイナーアップグレードと判断されると、古いバージョンのアンインストールは実行せず、上書きインストールされます。新しい機能やコンポーネントの追加も可能です。

マイナーアップグレードは単にmsiをダブルクリックしただけでは実行できません。コマンドラインで適切なオプションを指定して実行する必要があります。これは一般の人に実行をお願いするのは、まず難しいですので、基本的にメジャーアップグレードにすべきです。

スモールアップグレード

UpgradeCodeProductCodeVersionのいずれも変更せず、PackageCodeというコードを変更します。ファイルを数個変更したい場合に使うものですが、バージョンによる区別がつかず、ファイルバージョンやタイムスタンプで区別するしかないので、製品としては使用すべきではありません。

最後まで読んでいただきありがとうございます。
また読んでくださいませ。
そんじゃーね。

関連記事

SPONSORED LINK
SPONSORED LINK