Как я могу проверить существование переменной среды?
на документация на if
/ifdef
немного сбивает с толку. Для <?if [expression] ?>
говорится:
- переменные могут использоваться для проверки существования
...- если переменная не существует, оценка не удастся, и возникнет ошибка.
оказывается, если вы просто идете:<?if $(env.MY_VAR) ?>
и MY_VAR
не определено, компиляция завершится ошибкой. Как мне проверить существование?
обычно здесь можно использовать ifdef
, но они странно работают и в Wix. Вместо использования $(var.Variable)
синтаксис, они используют <?ifdef Variable?>
, что означает окружающая среда переменные не могут быть проверены таким образом.
что мне нужно сделать, чтобы получить эквивалент обычного процессора c:
#ifdef MY_ENVIRONMENT_VARIABLE
в Викс?
2 ответов
правильный способ ссылки на переменные среды в ifdef
разделы:
<?ifdef env.MY_VAR?>
...
<?endif?>
это работает, как ожидалось.
<Condition Message="Missing Environment Variable Message Goes Here"><![CDATA[%envvargoeshere]]></Condition>
поместите вышеуказанный элемент в элемент пакета файла wxs. Установка завершится ошибкой во время выполнения (время установки) с приятным сообщением, если переменная среды не существует.