2008年5月27日火曜日

Windows InstallerでCOM DLLの自己登録機能は避けるべし、だそうな

http://blogs.wankuma.com/tocchann/archive/2006/06/08/30618.aspx
Windows InstallerでCOM DLLの自己登録機能は避けるべし、だそうな。

2008年5月23日金曜日

WiXに関するmsdnマガジンの記事

マーカー的なメモ

WiX の秘訣: MSBuild と Windows Installer XML を使ったリリースの自動化」
http://msdn.microsoft.com/ja-jp/magazine/cc163456.aspx
本家MicrosoftによるWiXについての入門者向け解説。

■Visual StudioはInteliSenseをどこで管理しているかWixとは関係ないが)
IntelliSense が有効にならない場合は、wix.xsd ファイルを Visual Studio スキーマ ディレクトリにコピーするだけで有効になります。
通常、このディレクトリは %Program Files%\Microsoft Visual Studio 8\Xml\Schemas にあります。

WiXのソースでGUIDが ???? とかになっているのは、自動生成の指示である
<Package Id='????????-????-????-????-????????????'
この要素では Id 属性の GUID の形式に一連の疑問符文字 (?) が含まれていることに注目してください。
この構文を使用して、Id をビルド時に生成することを指定します。
インストーラを作成するときは、作成するインストーラごと、さらには毎回のビルドごとに異なる Package Id が必要です。

2008年5月21日水曜日

きわめて簡単で柔軟性の高いインストーラ作成方法(WiXで.msiを作ると超楽)

CodeZineの記事「WiXではじめるWindows Installer作成入門」が秀逸。
http://codezine.jp/a/default.aspx?cid=441

C/C++プログラマにとっては、Visual Studioで作るインストーラより、こちらの方が断然分かりやすい。
しかも柔軟性が高いという嬉しいおまけ付き。

WiXとは、Windows Install XML の略で、.msiファイルを作成するためのしくみだ。
この記事では、
WiX + Windows Installer SDK + Orca
の組み合わせでインストーラ(.msi)を作る方法を紹介している。
さらに、C++でDLLを作成することで、インストール機能をカスタマイズする方法まで解説されている。

WiXはMS初のオープンソースで、sourceforge.net からダウンロードする。
Windows Installer SDKはPlatform SDKに同梱されている。(なので、既にインストール済みの方も多いかと)
Orca はPlatform SDKのbinディレクトリの中に、orca.msiとして入っている。
ので、orca.msiをダブルクリックしてインストールしておく。

Visual Studio Installer で[Manufacturer]プロパティを変更する方法

Visual Studio Installer で[Manufacturer]プロパティを変更する方法

(Visual Studio 2005での例)

Visual Studio でセットアッププロジェクトを作成すると、左側ツリーに
 <<セットアッププロジェクト名>>
  +--見つかった依存関係
  +--<<ファイル>>
  +--<<ファイル>>
といった構成が見えているはず。

ここで、<<セットアッププロジェクト名>>を選んで、
 [表示]---[その他のウィンドウ]---[プロパティウィンドウ]メニュー
を選ぶ。
デフォルトだと、VSメインウィンドウの右の方にプロパティ一覧のウィンドウが表示されるので、
その中の「Manufacturer」を変更する。



っていうか、なんだかとてつもなく分かりにくい。orz
右クリックのプロパティでは出てこないし、なんなんだ一体。
バージョンアップするごとにどんどん分かりにくくなってきている気がする。>VS

Visual Studio による、最も簡単なインストーラの作成方法

Visual StudioでWindows Installer形式のインストーラが作れることは知っていたのだが、いざググってみると、「初めの一歩」とも言える基本的なインストーラの作り方が書いてあるものがなかなか見つからずうんざりした。

上位ヒットした中ですぐれていたのがこちら↓だ。
「Windows Installer 入門」
http://homepage1.nifty.com/takuhiro/technique/programming/vsinstaller/

残念ながら2000年頃の情報なので、少々古い。
Visual Studio 2005 による情報として、ここにまとめておきたい。


最も簡単なインストーラは、次の仕様とする。

・自分のアプリケーションと関連ファイルを、ターゲットマシンにコピーする。
・プログラムメニューにアプリケーションのショートカットを作る。
・コントロールパネルの「プログラムの追加と削除」からアンインストールできる。


ちなみに、Windows Installerは Windows98 などの古いOSでも動作するようなのだが、インストーラを動作させるために別途Windows Installerモジュールをインストールしなければならない。
なので、インストール対象OSはWindows 2000 Professonal SP3以降、XP、Vistaに限定する。
(そろそろWindows98系は捨てても良いと思うし)


1.インストーラ用プロジェクトの作成

Visual Studio 2005を起動し、インストーラ用のプロジェクトを作る。
開発中のアプリケーションの「ソリューション」に、インストーラプロジェクトを追加して管理する方法もあるようだが、「最も簡単なインストーラ」を示したいので、今回は単独で作ることにする。

[ファイル]---[新規作成]---[プロジェクト]メニューを選択する。

「新しいプロジェクト」ダイアログが出るので、左側ツリーの「その他のプロジェクトの種類」「セットアップと配置」を選ぶ。
右側の「セットアッププロジェクト」を選ぶ。
画面下部の「プロジェクト名」「場所」は任意。ここでは例えば "HogeApp" としてみる。



2.インストールするファイルを登録する

「アプリケーション フォルダ」を右クリック。[追加]---[ファイル]メニューを選択する。
インストールしたいファイル、つまり自分のプログラムのファイルを選択してOKする。
「アプリケーション フォルダ」という場所は、インストール先のマシンで指定された、アプリケーションのコピー先フォルダとなる。

サブフォルダを作ってその中にサンプルデータ等を入れたい場合は、「アプリケーション フォルダ」を右クリックし、[追加]---[フォルダ]でサブフォルダを作り、そのサブフォルダを右クリックして[追加]---[ファイル]メニューで追加したいデータファイルを指定すれば良い。



3.プログラムメニューにショートカットを登録する

さきほど登録したプログラムのファイルを右クリック。
例えばプログラムファイルが "HogeApp.exe" ならば、[HogeApp.exeへのショートカットを作成]メニューを選択。
その場所にショートカットができるので、F2キーを押して好きな名前に変更しておく。

これを、「ユーザーのプログラムメニュー」にドラッグ&ドロップすれば良い。



4.インストーラ実行モジュールをビルドする

[ビルド][ソリューションのビルド]メニューでビルドする。
すると、HogeApp.msi と setup.exe が出来上がる。
setup.exe を実行すれば、インストールできる。

自動的に、コントロールパネルの「プログラムの登録と削除」にも載る。