2012-04-17 8 views
9

if/ifdef에 대한 documentation은 약간 혼란 스럽습니다. <?if [expression] ?>를 들어, 상태 : 변수가 존재하지 않는환경 변수가 있는지 어떻게 확인할 수 있습니까?

  • 변수가 존재
    를 확인하는 데 사용할 수 있습니다 ...
  • 경우, 평가가 실패하고 오류가 발생합니다. 그냥 가면

이 밝혀 : <?if $(env.MY_VAR) ?>MY_VAR 정의되지 않은, 컴파일이 실패합니다. 존재 여부를 어떻게 확인합니까?

일반적으로 이것은 ifdef을 사용하는 곳이지만 이상하게도 윅에서도 마찬가지입니다. $(var.Variable) 구문을 사용하는 대신 환경을 의미하는 <?ifdef Variable?>을 사용합니다.이 방법으로 변수를 확인할 수 없습니다. 윅스에서

#ifdef MY_ENVIRONMENT_VARIABLE 

: 나는 정상적인 C 프리 프로세서의 등가를 얻기 위해 어떻게해야합니까 무엇

?

+0

참고 :''은 독자적으로 작동하지 않습니다. – fredley

답변

16

ifdef 섹션에서 환경 변수를 참조하는 올바른 방법은 다음과 같습니다 예상대로이 작동

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

.

+1

컴파일 타임에는 작동하지만 런타임 검사는 어떻게됩니까? – Cymon

+0

@Cymon http://stackoverflow.com/questions/3459998/get-an-environment-variable-into-a-wix-property?answertab=active#tab-top – Azimuth

5
<Condition Message="Missing Environment Variable Message Goes Here"><![CDATA[%envvargoeshere]]></Condition> 

위의 요소를 wxs 파일의 Package 요소에 넣습니다. 환경 변수가없는 경우 좋은 메시지와 함께 런타임에 설치가 실패합니다.

관련 문제