[PR]今日のニュースは
「Infoseek モバイル」

http://uchukamen.com/ に引越ししました。

5秒後に自動的にジャンプります。

このページの最終更新日 2006/07/22

 

インストーラの作成(ディプロイメント)


1.目次

2.目的

Windows.Forms のインストーラの作成についてまとめます。

.Net ベースのインストーラを作ったことが無かったので、実際に作ってみて、アイコンの設定や、流れを確認するのが目的です。
このため、以下の例での実行ファイルは1つの exe ファイルしかない、非常にシンプルなものにしてあります。
このような1つの exe ファイルにあえてインストーラをつける必要はありません。

3.参考書

(1) VisualStudio.NET のヘルプ:  チュートリアル : Windows アプリケーションの配置
(2) MSDN

4.インストールプロジェクトの追加

まず、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 プロジェクトの依存関係

5.スタートメニューへのショートカットの作成

これだけでは、アプリケーションフォルダー 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 を右クリックして、ビルドしてみましょう。

6.インストールのテスト

ソリューションエクスプローラから、DeploySetup を右クリックして、インストールメニューを選択してください。
Visual Studio からインストールのテストができるので、らくちんですね。

実際には、次のようにインストールが進みます。
Step 1


Step 2


Step 3


Step 4


Step 5


このように動作すればOKです。

7.リリース版の作成

ここまでは、デフォルトで進んできたとすると、Debug 版になっているはずです。
実際の製品では、リリース版にする必要があります。
下図のように、Debug から、Release に変えて、再ビルドすれば、完了です。

注意: アセンブリー情報を正しくセットしておきましょう。
プロジェクトで、AssemblyInfo.cs というファイルがありますが、その中でバージョン情報などをアセンブリーに
埋め込むことができます。正しい情報をセットしておきましょう。

ここでは共有アセンブリーを使用せず、フォルダー内で完結する方法をとりますので、Strong Name でサインする必要は
ありません。共有アセンブリーを使用する場合には、Strong Name をセットする必要があります。
この方法については、MSのヘルプを参照してください。




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


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