インストーラの作成(ディプロイメント)
- 目次
- 目的
- 参考書
- インストールプロジェクトの追加
- スタートメニューへのショートカットの作成
- インストールのテスト
- リリース版の作成
Windows.Forms のインストーラの作成についてまとめます。
.Net ベースのインストーラを作ったことが無かったので、実際に作ってみて、アイコンの設定や、流れを確認するのが目的です。
このため、以下の例での実行ファイルは1つの exe ファイルしかない、非常にシンプルなものにしてあります。
このような1つの exe ファイルにあえてインストーラをつける必要はありません。
- VisualStudio.NET のヘルプ: チュートリアル
: Windows アプリケーションの配置
-
MSDN
まず、Windows.Forms アプリケーション Deployment (名前は任意) を作ります。
このとき、エクスプローラはデフォルトで次のようになっていると思います。

ここで、アイコンファイルは アプリケーションのアイコンの設定のように、16x16,
32x32, 48x48 のアイコンを設定します。
次にソリューションエクスプローラより、ソリューション 'Deployment' を選択し、右クリックします。
コンテキストメニューより、追加→新しいプロジェクトの追加を選択します。
すると、次のような「新しいプロジェクトの追加」 ダイアログが表示されます。
ここで、左ペインより、セットアップ/デプロイメント プロジェクト、右ペインより 『セットアップ ウィザード』を選択します。

すると、次のようにセットアップ ウィザードがスタートします。

次に、Windows アプリケーションのセットアップを作成するを選択します。(下図)

次に、含めるプロジェクト出力グループ(W)で、プライマリ出力を選択します。(下図)
これにより、exe, dll がインストールされるようになります。

次に、含めるファイルの選択で、必要に応じて含めるファイルを選択します。(下図)
ここでは、何も含めていません。

最後にプロジェクトの作成で、内容を確認をし、完了ボタンを押します。
これにより、次のように DeploymentSetup が作成されます。

次に、作成されたセットアッププロジェクトのプロパティウィンドウを表示します。(下図)
このうち、Author, Manufacturer, ManufacturerUrl, Title, Version などを設定します。

インストールパスは、C:\Program Files\Manufacturer\ProductName\になります。
このため、Manufacturer、ProductName
を正しく設定しないと、期待しないところにインストールされてしまいます。
プロパティ | 説明 |
AddRemoveProgramsIcon | プログラムの追加と削除ダイアログに表示するアイコン |
Author | アプリケーションまたはコンポーネントの作成者の名前 |
Description | インストーラの説明 |
DetectNewerInstalledVersion | インストール時にアプリケーションの新しいバージョンをチェックするかどうか |
FriendlyName | Cab プロジェクトの .CAB ファイルのパブリック名 |
Keywords | インストーラの検索に使用するキーワード |
Localization | ロケールとランタイム ユーザー インターフェイスを指定 |
Manufacturer | アプリケーションまたはコンポーネントのメーカー名 |
ManufacturerUrl | アプリケーションまたはコンポーネントのメーカーのURL |
ModuleSignature | モジュールに一意の識別子 |
PackageCode | パッケージに一意の識別子 |
ProductName | アプリケーションまたはコンポーネントのパブリック名 |
RemovePreviousVersions | インストール時に以前のバージョンのアプリケーションを削除するかどうか |
RestartWWWService | インストール中にインターネット インフォメーション サービスを停止して再起動するかどうかを指定 |
SearchPath | 開発用コンピュータ上のアセンブリ、ファイルを検索するためのパス |
Subject | アプリケーションまたはコンポーネントの追加情報 |
SupportPhone | サポート電話番号 |
SupportUrl | サポートURL |
Title | インストーラのタイトル |
UpgradeCode | アプリケーションの複数のバージョンを表す共有識別子を指定します。 |
Version | インストーラ、マージ モジュール、または CAB ファイルのバージョン番号 |
WebDependencies | Cab プロジェクトの依存関係 |
これだけでは、アプリケーションフォルダー C:\Program
Files\UchukamenSoftware\Deployment に、
プライマリー出力の Deployment.exe だけがコピーされるだけで、スタートメニューに何も現れません。
そこで、Deploymentのプライマリー出力のショートカットをつくり、ユーザのプログラムメニューへショートカットを移動します。
ショートカットは、Deploymentのプライマリー出力を選択して、コンテキストメニュー→ショートカットの作成で作ります。
そのショートカットを、プログラムメニューへ移動すればOKです。
ポイント: ショートカットにアイコンを設定する。 |
このショートカットにアイコンを設定する必要があります。(無くてもOKだけど、カッコが悪い) そこで、アプリケーションフォルダーに、App.ico を配置して、ショートカットのアイコンは App.ico を参照するようにします。 アプリケーションフォルダーに、App.ico を追加するには、アプリケーションフォルダーのコンテキストメニューから 追加→ファイルで、App.ico を指定すれば追加できます。 先ほど作った Deployment のショートカットのプロパティの Icon プロパティで、アプリケーションフォルダーの App.ico を指定すればOKです。(下図) |
ポイント: ショートカットに
WorkingFolder をセットする。 |
WorkingFolder を正しくセットしておかないと、実行時の作業フォルダーが正しくセットされません。 カレントディレクトリからの相対パスを指定しているようなアプリケーションでは、この WorkingFolder を正しくセットしましょう。 |

これで、次のようにスタートメニューに、Deployment アイコンが表示されるようになります。
ポイント: プログラムの追加と削除にアイコンを表示する。 |
AddRemoveProgramIcon
にアイコンをセットすると、次の図のようにプログラムの追加と削除にアイコン(16x16)を 表示することができます。 |

また、このプログラムの追加と削除ダイアログで、『サポート情報を参照するには、ここをクリックしてください。』を
押すと、次のようにサポート情報ダイアログが表示されます。これらの情報を正しくセットするには、
セットアッププロジェクトのプロパティを正しくセットしておく必要があります。

さて、これで準備完了です。
ソリューションエクスプローラから、DeploySetup を右クリックして、ビルドしてみましょう。
ソリューションエクスプローラから、DeploySetup を右クリックして、インストールメニューを選択してください。
Visual Studio からインストールのテストができるので、らくちんですね。
実際には、次のようにインストールが進みます。
Step 1

Step 2

Step 3

Step 4

Step 5

このように動作すればOKです。
ここまでは、デフォルトで進んできたとすると、Debug 版になっているはずです。
実際の製品では、リリース版にする必要があります。
下図のように、Debug から、Release に変えて、再ビルドすれば、完了です。
注意: アセンブリー情報を正しくセットしておきましょう。 |
プロジェクトで、AssemblyInfo.cs というファイルがありますが、その中でバージョン情報などをアセンブリーに 埋め込むことができます。正しい情報をセットしておきましょう。
ここでは共有アセンブリーを使用せず、フォルダー内で完結する方法をとりますので、Strong Name でサインする必要は ありません。共有アセンブリーを使用する場合には、Strong Name をセットする必要があります。 この方法については、MSのヘルプを参照してください。 |

これで、DeploymentSetup\Release の下に、DeploymentSetup.msi というファイルができます。(下図)

この DeploymentSetup.msi ファイル1つだけを配布すれば、OKです。