프로젝트를 빌드할 때 프로젝트 파일이나 프로젝트를 구성하는 파일에 없는 정보를 사용하여 빌드 옵션을 설정해야 하는 경우가 많습니다. 이 정보는 일반적으로 환경 변수에 저장됩니다.
비고
MSBuild는 환경 변수를 신뢰할 수 있는 입력으로 처리합니다. 이들은 MSBuild가 사용자 지정 위치에서 작업 및 .targets, .props 파일과 같은 빌드 로직을 로드하거나 빌드 실행 방법을 변경할 수 있게 할 수 있습니다.
참조 환경 변수
유효한 MSBuild 속성 이름인 모든 환경 변수는 MSBuild 프로젝트 파일에서 속성으로 사용할 수 있습니다. 유효한 속성 이름은 MSBuild 속성에 설명되어 있습니다. 예를 들어 숫자로 시작하는 환경 변수는 MSBuild에서 사용할 수 없습니다.
비고
프로젝트 파일에 환경 변수와 이름이 같은 속성의 명시적 정의가 포함되어 있으면 프로젝트 파일의 속성이 환경 변수의 값을 재정의합니다.
MSBuild 프로젝트에서 환경 변수를 사용하려면
프로젝트 파일에 선언된 변수와 동일한 방식으로 환경 변수를 참조합니다. 예를 들어 다음 코드는 BIN_PATH 환경 변수를 참조합니다.
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>환경 변수가
Condition설정되지 않은 경우 특성을 사용하여 속성에 대한 기본값을 제공할 수 있습니다.
속성에 대한 기본값을 제공하려면
속성의
Condition특성을 사용하여 속성에 값이 없는 경우에만 값을 설정합니다. 예를 들어 다음 코드는 환경 변수가ToolsPath설정되지 않은 경우에만 속성을ToolsPath로 설정합니다.<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>비고
속성 이름은 대/소문자를 구분하지 않으므로 둘 다
$(ToolsPath)$(TOOLSPATH)동일한 속성 또는 환경 변수를 참조합니다.
예시
다음 프로젝트 파일은 환경 변수를 사용하여 디렉터리 위치를 지정합니다.
<Project DefaultTargets="FakeBuild">
<PropertyGroup>
<FinalOutput>$(BIN_PATH)\myassembly.dll</FinalOutput>
<ToolsPath Condition=" '$(ToolsPath)' == '' ">
C:\Tools
</ToolsPath>
</PropertyGroup>
<Target Name="FakeBuild">
<Message Text="Building $(FinalOutput) using the tools at $(ToolsPath)..."/>
</Target>
</Project>