我在checkbox
面板中安装了UserInput
用于安装Windows服务,我希望将其与安装路径相关联。
如果安装路径是本地驱动器,那么"安装Windows服务"应该出现checkbox
。
但是,如果安装路径是网络共享位置或已装载的驱动器,则不会显示该复选框。
为此,我尝试使用Dynamic variable和Condition
以下是install.xml的片段
<conditions>
<condition type="variable" id="install.path.condition">
<name>$INSTALL_PATH</name>
<value>//</value>
</condition>
</conditions>
<dynamicvariables>
<variable name="windowsservice" value="false" condition="install.path.condition" />
<variable name="windowsservice" value="true" condition="!install.path.condition" />
</dynamicvariables>
install_userinputspec.xml中的目标字段
<field align="left" type="check" variable="windowsservice" conditionid="install.path.condition" revalidate="true">
<os family="windows"/>
<spec txt="Install as Windows Service" id="windowsServiceCheckbox" true="on" false="off"
set="false" />
</field>
我试着运气得好,但它不会。请帮忙
答案 0 :(得分:0)
将$INSTALL_PATH
更改为INSTALL_PATH
<name>INSTALL_PATH</name>
如果您不确定将为INSTALL_PATH
输入的确切值,那么请使用type="variable"
使用{{1使用嵌套的type="contains"
标记,例如:
<variable>
使用<condition type="contains" id="...">
<variable>INSTALL_PATH</variable>
<value>a substring to match in the value of INSTALL_PATH</string>
</condition>
作为revalidate="yes"
标记的属性,而不是<spec>
标记本身。
首先,尝试让<field>
工作。在对其进行测试后,<condition>
字段可以直接链接到启用/禁用的条件,因此,在这种情况下,您不需要使用check
,除非您需要除了复选框启用 - 禁用 - 基于INSTALL_PATH之外的其他内容。