为什么我的绑定时间变量在从 WiX v3 迁移到 v4 后失败?

Why is my bind-time variable failing after migrating from WiX v3 to v4?

给定以下捆绑包:

<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
     xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"
     xmlns:fire="http://wixtoolset.org/schemas/v4/wxs/firewall"
     xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
  <Bundle Name="!(bind.packageName.Setup)"
          Version="!(bind.packageVersion.Setup)"
          Manufacturer="!(bind.packageManufacturer.Setup)"
          UpgradeCode="$(var.UpgradeCode)">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
      <bal:WixStandardBootstrapperApplication LicenseUrl=""
                                              SuppressOptionsUI="no"
                                              ShowVersion="yes"
                                              SuppressRepair="yes" />
    </BootstrapperApplicationRef>
    <Chain>
      <MsiPackage Id="Setup"
                  Compressed="yes"
                  Name="$(var.ProductName)"
                  SourceFile="foo.exe"
                  DisplayInternalUI="yes"
                  Vital="yes" />
    </Chain>
  </Bundle>
</Wix>

使用 v3 我在构建 boostrapper 时没有问题,使用最近的 v4 版本 (4.0.2926.0) 我收到以下错误:

4>Bootstrapper\Bundle.wxs(14,0): error LGHT0298: Unresolved bind-time variable !(bind.packageVersion.Setup).
4>light.exe(0,0): error LGHT0001: Input string was not in a correct format.
4>Done building project "Bootstrapper.wixproj" -- FAILED.

这可能是 WiX v4 中的错误。 WiX v4.0 仍在积极开发中,处于预测试阶段。请在 http://wixtoolset.org/issues/ 提交错误,这样我们就不会丢失它。