小ネタそのほかもろもろ(2009/10/14分の日記)*1

Visual Studioのプロパティ

 日記をずいぶん休んでいますが、それなりに元気にやってます。

[IT][開発]MSI小ネタ

 カスタム動作に指定したアセンブリ(自作のインストールスクリプト)などに、MSIデータベースが保持するパラメータを引数として渡すことが出来る。
 方法は、追加した[カスタム動作]のプロパティ、Arguments属性に、MSIの内部パラメータに該当するマクロを指定すればよい。
 たとえば、インストールターゲットであれば、[TARGETDIR]を指定すればよい。*1















関連

注:EXEファイルをそのまま実行する場合は、InstallerClassプロパティをFalseにする必要があります。

 .NETが必要となると、どうしても環境依存になることが多く、結果としてインストールスクリプトにマネージコード(C#とか)を使うのが難しくなる。
 というわけで、VBスクリプトにするか、VC++にするかのどっちかに落ち着いたわけです。*2

*1:どうしてこんなことをわざわざメモしたかというと、MSIのインストール実行中は、MSIデータベースがどうもロックされているっぽく、Query系APIが失敗したから。

*2:最初は、バッチにしようと思ったのですが、VS2008のMSIビルダーはバッチを使わせてくれませんでした。