Как я могу проверить существование переменной среды?
на документация на 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. Установка завершится ошибкой во время выполнения (время установки) с приятным сообщением, если переменная среды не существует.