セットアッププロジェクトのカスタム動作でセットアップのバージョン情報を取得するには?

解決


UMA  2009-09-12 09:54:04  No: 146316

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プロパティの値を取得できるでしょうか?
宜しくお願い申し上げます。


UMA  2009-09-12 17:46:28  No: 146317

セットアップのプロジェクトファイル(拡張子.vdproj)の中身をエディタで覗いたところ、
バージョンのプロパティ名らしきものが"ProductVersion"となっていたので、
カスタム動作エディタのCustomActionDataプロパティのバージョンの部分を以下のようにすることで解決できました。
/VERSION=[ProductVersion]


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加