다음을 통해 공유


빌드에서 환경 변수 사용

프로젝트를 빌드할 때 프로젝트 파일이나 프로젝트를 구성하는 파일에 없는 정보를 사용하여 빌드 옵션을 설정해야 하는 경우가 많습니다. 이 정보는 일반적으로 환경 변수에 저장됩니다.

비고

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>