Visual Studio Installer 編集の自動化

Visual Studio Installer - kitunechan’s blog の続き

毎回Orcaを使って編集するのはめんどくさいし、”よく忘れます”← ここ重要
コマンドラインやバッチファイル的なものはないかと探したらありました。

vbsを使う方法が一番簡単そうです。

MSIファイルのWindows Installerデータベースをプログラムで編集する: .NET Tips: C#, VB.NET

以下の内容でvbsファイルを作成します。

[アドバタイズショートカットから通常のショートカットに切り替える]
NormalShortCut.vbs

Option Explicit

Const msiOpenDatabaseModeTransact = 1

Dim msiPath : msiPath = Wscript.Arguments(0)

Dim installer
Set installer = Wscript.CreateObject("WindowsInstaller.Installer")
Dim database
Set database = installer.OpenDatabase(msiPath, msiOpenDatabaseModeTransact)

Dim query
    query = "INSERT INTO Property(Property, Value) VALUES('DISABLEADVTSHORTCUTS', '1')"
Dim view
Set view = database.OpenView(query)
view.Execute
database.Commit

あとはこのファイルにmsiファイルを渡すだけです。
何かのウインドウが開くこともなく、msiファイルが書き換えられます。

Visual StudioでPostBuildEventに以下のコードを入力して自動化します。

"[パス]\NormalShortCut.vbs" "$(BuiltOuputPath)"