web-dev-qa-db-ja.com

WiXバンドルのバージョンをアプリケーションのバージョンと同じにする方法

WiXバンドルの「バージョン」属性はプログラムと機能に表示されます。したがって、これは実際のアプリケーションのバージョン番号と同じである必要がありますよね?

それらが同じであると仮定すると、この更新を自動的に行う方法はすぐには明らかではないようです。 [〜#〜] msi [〜#〜]この質問 に従って実行していますが、Bundle/Bootstrapperビットはありません。 Bootstrapper Bundleに同じことをさせて、MSIバージョン番号を読み取るにはどうすればよいですか?

27
noelicus

あなたの最初の質問に答えるために、これのための厳格な規則はありません。したがって、WIXバンドルのバージョンを更新して、MSIのバージョンと一致させる必要はありません。

2番目の質問については、よくわかりません。ただし、このバインダー変数を試すことができます。

_!(bind.packageVersion.PackageID) 
_

[〜#〜] edit [〜#〜]PackageIDをインストールするプログラムの要素「ID」属性。次のようなもの:Version="!(bind.packageVersion.MyAppName)"

_<MsiPackage SourceFile="SomePath\MyAppName.msi" Id="MyAppName"/>
_

これで述べたように [〜#〜] post [〜#〜] 。その他のバインダー変数については、 WIXドキュメント も確認してください。

[〜#〜] edit [〜#〜]2017/5/11-そこにあるように見えますpackageIDがどうあるべきかについて混乱していたので、以下のBobLutzの回答に基づいて回答を編集しました。

31
Isaiah4110

Isaiah4110の回答を補足するために(まだコメントできず、編集が拒否されました):

PackageIDは、チェーン内のパッケージタイプの1つ(MsiPackage、ExePackage ...など)のID値から取得されます。したがって、<MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/>のバージョン番号を参照するには、!(bind.packageVersion.MyMsi)を使用します。

(私のように)IDがない場合は、IDを定義する必要があります。

16
Bob Lutz