2010-01-04 6 views
4

변수가없는 경우 대신 기본값으로 대체되는 프로젝트 파일 (vsprop 포함 또는 제외)에서 환경 변수 대체를 수행 할 수있는 방법이 있습니까? 모든 것이 환경 변수를 무시하는 것 같기 때문에 이것을 수행 할 방법을 찾지 못했습니다.vcproj/vsprops를 사용하는 선택적 환경 변수

편집 : 환경 변수가 아닌 속성에 대해 작업해야합니다. 특히, 대상 빌드 디렉토리를 지정하는 환경 변수를 사용하여 다른 소스에서 devenv를 호출 할 수 있습니다. 해당 변수가 존재하지 않으면 (아마도 devenv가 IDE로만 사용되고 있기 때문에) 기본값을 사용해야합니다.

이미 MSBuild에서 작동합니다. 이제 VCBuild에서 작동해야합니다. 벤처 프로젝트 파일이 내가 아는 한 논리 문에 대해 구문 분석되지 않습니다

답변

0

, 하지만 환경 변수가 se인지 감지 할 추가 기능을 작성하여이 문제를 해결했습니다. t가 아니라면 변수의 기본값을 구성하여 저장하십시오. 가장 세련된 솔루션은 아니지만 작동합니다.

0

흠, 분명히 내가 여기

<PropertyGroup Condition=" '$(your_var)' == '' "> 
    <your_var>default</your_var> 
</PropertyGroup> 
+1

이것은 MSBuild 용이며 VCBuild 용입니다. 나는 그것이 그렇게 단순했으면 좋겠다. – coppro

+0

죄송합니다. VCBuild에 대한 귀하의 참조를 놓쳤습니다. – mfeingold

1

나는이 프로젝트 수준에서 할 수 있다고 생각하지 않습니다 XML fromat하는 방법을 모른다 (배치 파일 구문을 사용할 수있는 빌드 이벤트를 제외하고 배치 파일로 실행되기 때문에 그렇습니다).

당신이 할 수있는 유일한 일은 기본 변수를 가진 글로벌 환경 변수를 만드는 것입니다. devenv가 호출되는 환경이 지정하는 경우 재정의됩니다.

환경 :

MYVSOUTDIR="c:/temp" 

vcproj/vsprops : 배치 파일에

OutputDirectory="$(MYVSOUTDIR)\_$(ConfigurationName)_$(PlatformName)" 

재정이 : 나는 그것을 기술적으로 내 원래 질문의 범위 밖에서 알고

set MYVSOUTDIR="d:/mytemp" 
devenv