gpt4 book ai didi

wix - 使用 if 条件比较 WiX 中的变量值

转载 作者:行者123 更新时间:2023-12-04 16:18:05 25 4
gpt4 key购买 nike

我想检查用户是否已经为 USERNAME 传递了一个默认值为本地的参数。我想看看我是否收到一条消息,如果该值是本地的。问题在于以下方式。这不起作用。

<Property Id="USERNAME" Value="local"/>
<?define uName = [USERNAME]?>

<?if $(var.uName) = local ?>
<Condition Message="$(var.uName)">0</Condition>
<?endif?>

但是,如果我将代码更改为以下代码,它将给出消息。
<?define uName = local?>

<?if $(var.uName) = local ?>
<Condition Message="$(var.uName)">0</Condition>
<?endif?>

以下代码将 USERNAME 属性的值赋给 uName多变的。
<Property Id="USERNAME" Value="local"/>
<?define uName = [USERNAME]?>
<Condition Message="$(var.uName)">0</Condition>

上面的代码在消息框中打印“local”。

我尝试了很多场景,可以找到问题所在。在比较分配为的变量值时,
<?define uName = [USERNAME]?>

尽管该值已分配给 uName,但我们无法进行比较。我在这里做错了什么吗?或者有没有其他方法可以解决此类问题?

最佳答案

你能在没有变量的情况下这样做吗?
<Property Id="USERNAME" Value="local"/><Condition Message="The username is local, please enter a username for the installation to proceed">USERNAME = "local"</Condition>
如果用户输入了用户名,这将是正确的,然后安装将继续,但如果用户没有输入,则安装将失败,因为默认为本地。

我想知道用户名是如何输入的。这是通过命令行还是来自输入对话框?

如果来自对话框 - 我建议使用错误对话框而不是中止安装。我可能完全错了,但只是给你选择。

希望这可以帮助...:)

编辑:

要执行您想要的操作,只需向包含您的服务的组件添加一个条件即可。有两个组成部分:

<Component Id="ServiceOne" Guid='*' Directory="Directory">
//All your service tags etc
<Condition><![CDATA[USERNAME = "local"]]></Condition>
</Component>

<Component Id="ServiceTwo" Guid='*' Directory="Directory">
//All your service tags etc
<Condition><![CDATA[USERNAME <> "local"]]></Condition>
</Component>

关于wix - 使用 if 条件比较 WiX 中的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15428574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com