WiX Bundle中的“Version”属性显示在程序和功能中。因此,这应该与我的实际应用程序的版本号相同,对吧?
在假设它们应该是相同的情况下,如何自动进行此更新似乎并不明显。我有MSI按this question执行,但不是Bundle / Bootstrapper位。如何让Bootstrapper Bundle做同样的事情并阅读MSI版本号?
答案 0 :(得分:29)
要回答你的第一个问题,对此没有严格的规定。因此,更新您的WIX软件包版本并将其与您的MSI版本相匹配不是必须的。
关于第二个问题,我不太确定。但你可以试试这个活页夹变量:
!(bind.packageVersion.PackageID)
编辑 将PackageID
替换为您正在安装的程序的元素“ID”属性。类似于:Version="!(bind.packageVersion.MyAppName)"
<MsiPackage SourceFile="SomePath\MyAppName.msi" Id="MyAppName"/>
如此POST中所述。另请检查WIX documentation以获取更多活页夹变量。
编辑 5/11/2017 - 看起来有关于packageID应该是什么的混淆,我根据Bob Lutz的答案编辑了答案。
答案 1 :(得分:16)
补充Isaiah4110的答案(我暂时无法评论,我的编辑被拒绝):
PackageID来自您链中某个包类型(例如MsiPackage,ExePackage ...)的Id值。所以要参考版本号
<MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/>
你会用!(bind.packageVersion.MyMsi)。
如果您没有Id(就像我一样),您需要定义一个。