MSBuild 속성
업데이트: 2007년 11월
속성은 빌드를 구성하는 데 사용될 수 있는 키/값 쌍입니다. 프로젝트 파일 전체에서 참조할 수 있도록 속성을 사용하여 값을 작업으로 전달하고, 조건을 확인하며, 값을 저장할 수 있습니다.
프로젝트 파일에서 속성 정의 및 참조
속성 이름을 갖는 요소를 PropertyGroup 요소의 자식으로 만들어 속성을 선언합니다. 예를 들어, 다음 XML에서는 값이 Build인 BuildDir라는 속성을 만듭니다.
<PropertyGroup>
<BuildDir>Build</BuildDir>
</PropertyGroup>
프로젝트 파일 전체에서 속성을 참조할 때는 $(PropertyName) 구문을 사용합니다. 예를 들어, 앞의 예제에서는 $(BuildDir)를 사용하여 속성을 참조합니다.
명령줄에서 속성 설정
MSBuild에서는 /property 또는 /p 명령줄 스위치를 사용하여 명령줄에서 속성을 설정할 수 있습니다. 명령줄에서 받은 속성 값은 프로젝트 파일에 설정된 속성 값과 환경 변수로부터 상속된 속성 값보다 우선합니다.
다음 예제에서는 Configuration 속성을 DEBUG로 설정합니다.
MSBuild.exe MyProj.proj /p:Configuration=DEBUG
예약 속성
MSBuild에서 일부 속성 이름은 프로젝트 파일과 MSBuild 이진 파일에 대한 정보를 저장하기 위해 예약되어 있습니다. 이러한 속성은 다른 속성과 같이 $ 표기법을 사용하여 참조됩니다. 자세한 내용은 방법: 프로젝트 파일의 이름 또는 위치 참조 및 MSBuild 예약 속성을 참조하십시오.
환경 변수
프로젝트 파일에서 환경 변수도 예약 속성과 같은 방식으로 참조될 수 있습니다. 예를 들어, 프로젝트 파일에서 PATH 환경 변수를 사용하려면 $(Path)를 사용합니다. 프로젝트에 환경 변수와 이름이 같은 속성이 정의되어 있으면 프로젝트의 속성이 환경 변수의 값보다 우선합니다. 자세한 내용은 방법: 빌드 시 환경 변수 사용을 참조하십시오.
속성에 XML 저장
값을 작업으로 전달하거나 로깅 정보를 표시하는 데 도움이 될 수 있는 임의의 XML을 속성에 저장할 수 있습니다. 다음 예제에서는 XML을 포함하는 값을 갖는 ConfigTemplate 속성과 기타 속성 참조를 보여 줍니다. MSBuild에서는 속성 참조를 각각 해당 속성 값으로 바꿉니다. 속성 값은 위에서 아래로 해석되므로 이 예에서 $(MySupportedVersion), $(MyRequiredVersion) 및 $(MySafeMode)는 이미 정의되어 있어야 합니다.
<PropertyGroup>
<ConfigTemplate>
<Configuration>
<Startup>
<SupportedRuntime
ImageVersion="$(MySupportedVersion)"
Version="$(MySupportedVersion)"/>
<RequiredRuntime
ImageVersion="$(MyRequiredVersion)
Version="$(MyRequiredVersion)"
SafeMode="$(MySafeMode)"/>
</Startup>
</Configuration>
</ConfigTemplate>
</PropertyGroup>