问题描述
我正在尝试使用从自定义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"