MSBuild의 이스케이프 특수 문자

MSBuild 프로젝트 파일에서 특정 문자는 특수한 의미로 사용됩니다. 이러한 문자의 예로는 세미콜론(;) 및 별표(*)를 들 수 있습니다. 이러한 특수 문자의 전체 목록을 보려면 MSBuild 특수 문자를 참조하세요.

프로젝트 파일에서 이러한 특수 문자를 리터럴로 사용하려면 %<xx> 구문을 사용하여 해당 문자를 지정해야 합니다. 여기서 <xx>는 문자의 ASCII 16진수 값을 나타냅니다.

MSBuild 특수 문자

항목 목록의 Include 특성에서 특수 문자가 사용되는 하나의 예가 있습니다. 예를 들어 다음 항목 목록은 두 개의 항목, MyFile.csMyClass.cs를 선언합니다.

<Compile Include="MyFile.cs;MyClass.cs"/>

이름에 세미콜론이 포함된 항목을 선언하려면 %<xx> 구문을 사용하여 세미콜론을 이스케이프하고 MSBuild가 두 개의 개별 항목을 선언하지 않게 해야 합니다. 예를 들어 다음 항목은 세미콜론을 이스케이프하고 MyFile.cs;MyClass.cs라는 하나의 항목을 선언합니다.

<Compile Include="MyFile.cs%3BMyClass.cs"/>

속성 함수를 사용하여 문자열을 이스케이프할 수도 있습니다. 예를 들어 다음은 위 예제와 같습니다.

<Compile Include="$([MSBuild]::Escape('MyFile.cs;MyClass.cs'))" />

MSBuild 특수 문자를 리터럴 문자로 사용하려면

특수 문자 대신 %<xx> 표기법을 사용할 수 있습니다. 여기서 <xx>는 ASCII 문자의 16진수 값을 나타냅니다. 예를 들어 별표(*)를 리터럴 문자로 사용하려면 %2A 값을 사용합니다.