如何使WiX Bundle版本与我的应用程序版本相同

noe*_*cus 26 wix bootstrapper

WiX Bundle中的"Version"属性显示在" 程序和功能"中.因此,这应该与我的实际应用程序的版本号相同,对吧?

假设它们应该是相同的,如何自动更新似乎并不是很明显.我有MSI根据这个问题来做,但不是Bundle/Bootstrapper位.如何让Bootstrapper Bundle做同样的事情并阅读MSI版本号?

Isa*_*110 31

要回答你的第一个问题,对此没有严格的规定.因此,更新您的WIX软件包版本并将其与您的MSI版本相匹配不是必须的.

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

!(bind.packageVersion.PackageID) 
Run Code Online (Sandbox Code Playgroud)

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

<MsiPackage SourceFile="SomePath\MyAppName.msi" Id="MyAppName"/>
Run Code Online (Sandbox Code Playgroud)

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

编辑 5/11/2017 - 看起来有关于packageID应该是什么的混淆,我根据Bob Lutz的答案编辑了答案.

  • 对于访问的人,将`PackageID`替换为您正在安装的程序的*name*.它应该看起来像`Version ="!(bind.packageVersion.MyAwesomeApp)"`(至少对我有用..) (4认同)

Bob*_*utz 16

补充Isaiah4110的答案(我无法发表评论,我的编辑被拒绝):

PackageID来自您链中某个包类型(例如MsiPackage,ExePackage ...)的Id值.所以要引用<MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/> 你要使用的版本号 !(bind.packageVersion.MyMsi).

如果你没有Id(比如我自己),你需要定义一个.