WiX Bundle 中的“版本”属性显示在Programs and Features中。因此这应该与我实际应用程序的版本号相同,对吧?
假设它们应该相同,如何自动进行此更新似乎并不明显。我已经按照这个问题让MSI做到了,但没有 Bundle/Bootstrapper 位。如何让 Bootstrapper Bundle 做同样的事情并读取 MSI 版本号?
要回答您的第一个问题,对此没有硬性规定。因此,不必更新您的 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 回答编辑了答案。
为了补充 Isaiah4110 的回答(我还不能发表评论,我的编辑被拒绝了):
PackageID 来自您的链中的一种包类型(例如 MsiPackage、ExePackage...)的 Id 值。因此,要引用您的版本号,
<MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/>
请使用!(bind.packageVersion.MyMsi)。
如果您没有 ID(如我自己),则需要定义一个。