#variables #wix3.11
#переменные #wix3.11
Вопрос:
Я пытаюсь использовать переменную, которую я устанавливаю из своего пользовательского интерфейса. Я вижу в журналах, где оно устанавливает значение, но все, что я пробовал, условие не выполняется.
Вот код, о котором идет речь:
<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.
Ответ №1:
После дня, когда я рвал на себе волосы, я наконец понял, в чем была моя проблема.
Я изменил это:
<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"