VB2008を使用して、セットアッププロジェクトを作成しています。
この時、以下のサイトを参考に、カスタム動作を使ってレジストリに値をセットするようなことを行おうとしています。
(レジストリにセットする値は計算で求めるため、Installerクラスを使用してレジストリに値を書き込もうと思っています。)
http://dobon.net/vb/dotnet/deployment/customaction.html#parameters
ここで、Installerクラスよりセットアップのプロパティを取得したいのですが、うまくいきません。
例えば、上記サイトを参考に、カスタム動作エディタのCustomActionDataプロパティを以下のように設定します。
/PRODUCT_NAME=[ProductName] /VERSION=[Version]
(セットアップのProductNameとVersionのプロパティを取得する想定です。例えばProductNameは"test"、Versionは"1.2.3"という具合です。)
そして、Installerクラス内で以下のように設定します。
(Commit時の動作を想定しています。)
Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary)
MyBase.Commit(savedState)
Dim P_Name As String = Me.Context.Parameters("PRODUCT_NAME")
Dim V_No As String = Me.Context.Parameters("VERSION")
(以下略)
この場合、セットアップのProductNameのプロパティの内容は取得できる(変数P_Nameに格納される)のですが、
Versionプロパティの値は取得できませんでした。(変数V_NoはNothingのようです。)
どのようにすればセットアップのVersionプロパティの値を取得できるでしょうか?
宜しくお願い申し上げます。
セットアップのプロジェクトファイル(拡張子.vdproj)の中身をエディタで覗いたところ、
バージョンのプロパティ名らしきものが"ProductVersion"となっていたので、
カスタム動作エディタのCustomActionDataプロパティのバージョンの部分を以下のようにすることで解決できました。
/VERSION=[ProductVersion]
ツイート | ![]() |