Windows Installer で配置する resources の DACL を変更する方法 の続き
前回、ORCA を利用し手動で Windows Installer database を編集しましたが、このままでは installer を build する度に ORCA を起動して手作業で編集することになるので非常に面倒です。
もうちょっと省力化できないか? ということで、以下の方法を考えてみました。
ORCA には編集した tables を import, export する機能があります。とりあえず export してみましょう。
Menu bar の [Tables] から [Export Tables...] を選択します。
[Output Diretory] を指定し、[Tables] で編集を行った tables を指定した上で <OK> を click します。
これで、指定した folder に "%TABLE_NAME%.idt" という file が出来上がります。
後は build する度に上記で export した file を import すればいいのですが、GUI で作業することになるのでこれでも面倒ですね。
ということで、CLI で行う方法を。
"MsiDb.Exe" を利用すると ORCA で export した IDT file を利用し、MSI 内の Windows install database を更新することができます。下記のような感じです。
"MsiDb.Exe" -i "%TABLE_NAME%.idt" -f "%IDL_FILE_PATH%" -d "%MSI_FILE_PATH%"
"MsiDb.Exe" は Microsoft SDK の installed folder 配下の "bin" folder に存在しますので、path を通すか、"Visual Studio 2008 コマンド プロンプト" から実行してください。"%%" で囲われた部分は個々の環境に応じて適宜変更してください。
これを batch file にすれば多少は楽になるでしょう。
Visual Studio Setup Project で build 完了後に自動実行する option があれば簡単に完全自動化できるのにね。。。
<参考>