Wix条件错误-无法解析条件

问题描述

我正在尝试使用从自定义UI设置的变量。我在日志中看到它设置了值,但是我尝试过的所有条件都失败了。

这是有问题的代码

<MsiPackage SourceFile="$(var.Recorder.Installer.TargetPath)" InstallCondition="[installrecorder]"
              Visible="no" EnableFeatureSelection="yes" Name="Recorder.Installer" Id="Recorder.Installer"
              />

我将[installrecorder]的字符串'1'设置为true,将'0'设置为false。

话虽如此,这就是我尝试过的:

[installrecorder]=1 [installrecorder]='1' installrecorder=1 'installrecorder'='1'

如果有人可以告诉我我做错了什么,或者提供良好的链接,这将非常有帮助。

此外,这是我看到的确切日志,如果有帮助的话。

[1194:0AC0][2020-08-13T05:39:46]i000: Setting string variable 'installrecorder' to value '1'
[1194:0AC0][2020-08-13T05:39:46]i000: Starting Installation
[1194:0F64][2020-08-13T05:39:46]i200: Plan begin,1 packages,action: Install
[1194:0F64][2020-08-13T05:39:46]e000: Error 0x8007000d: Failed to parse condition "[installrecorder]". Unexpected character at position 0.

解决方法

经过一天的梳理,我终于弄清楚了我的问题所在。

我更改了此内容

  <Variable Name="InstallRecorder" Value="0" />
  <Variable Name="InstallDataTransport" Value="0"/>

对此:

<Variable Name="InstallRecorder" bal:Overridable="yes" Type="numeric" Value="0" />
<Variable Name="InstallDataTransport" bal:Overridable="yes" Type="numeric" Value="0"/>

然后像这样访问它:

InstallCondition="InstallDataTransport = 1"