【问题标题】:How can I check the existence of an environment variable?如何检查环境变量是否存在?
【发布时间】:2012-04-28 15:38:37
【问题描述】:

if/ifdefdocumentation 有点令人困惑。对于<?if [expression] ?>,它声明:

  • 变量可用于检查是否存在
    ...
  • 如果变量不存在,评估将失败并引发错误。

事实证明,如果你只是去:<?if $(env.MY_VAR) ?>MY_VAR 没有定义,编译会失败。如何检查是否存在?

通常,这是使用ifdef 的地方,但这些在Wix 中也很奇怪。他们不使用$(var.Variable) 语法,而是使用<?ifdef Variable?>,这意味着不能以这种方式检查环境 变量。

我需要做什么才能获得相当于普通 c 预处理器的功能:

#ifdef MY_ENVIRONMENT_VARIABLE

在 Wix 中?

【问题讨论】:

  • 注意:<?ifdef MY_ENVIRONMENT_VARIABLE ?> 不能单独工作。

标签: wix environment-variables conditional-compilation


【解决方案1】:

ifdef 部分中引用环境变量的正确方法是:

<?ifdef env.MY_VAR?>
  ...
<?endif?>

这按预期工作。

【讨论】:

【解决方案2】:
<Condition Message="Missing Environment Variable Message Goes Here"><![CDATA[%envvargoeshere]]></Condition>

将上述元素放入wxs文件的Package元素中。 如果环境变量不存在,安装将在运行时(安装时)失败并显示一条好消息。

【讨论】:

    猜你喜欢
    • 2011-01-21
    • 2013-08-12
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多