29

WiX Bundle 中的“版本”属性显示在Programs and Features中。因此这应该与我实际应用程序的版本号相同,对吧?

假设它们应该相同,如何自动进行此更新似乎并不明显。我已经按照这个问题让MSI做到了,但没有 Bundle/Bootstrapper 位。如何让 Bootstrapper Bundle 做同样的事情并读取 MSI 版本号?

4

2 回答 2

36

要回答您的第一个问题,对此没有硬性规定。因此,不必更新您的 WIX 捆绑包版本并将其与您的 MSI 版本匹配。

至于第二个问题,我不太确定。但是你可以试试这个 binder 变量:

!(bind.packageVersion.PackageID) 

编辑替换PackageID为您正在安装的程序的元素“ID”属性。就像是:Version="!(bind.packageVersion.MyAppName)"

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

如本POST所述。另请查看WIX 文档以获取更多活页夹变量。

编辑2017 年 5 月 11 日 - 似乎对 packageID 应该是什么感到困惑,我已经根据下面的 Bob Lutz 回答编辑了答案。

于 2013-08-16T16:40:49.510 回答
18

为了补充 Isaiah4110 的回答(我还不能发表评论,我的编辑被拒绝了):

PackageID 来自您的链中的一种包类型(例如 MsiPackage、ExePackage...)的 Id 值。因此,要引用您的版本号, <MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/> 请使用!(bind.packageVersion.MyMsi)。

如果您没有 ID(如我自己),则需要定义一个。

于 2014-09-13T23:09:20.417 回答