항목 목록을 쉼표로 구분하여 표시

Microsoft Build Engine(MSBuild)에서 항목 목록을 사용할 때 쉽게 읽을 수 있는 방식으로 해당 항목 목록의 내용을 표시하는 데 유용합니다. 또는 특별한 구분 기호 문자열로 구분된 항목의 목록을 사용하는 작업이 있을 수 있습니다. 이러한 모든 경우에 항목 목록에 대한 구분 기호 문자열을 지정할 수 있습니다.

목록에서 항목을 쉼표로 구분

기본적으로 MSBuild는 세미콜론을 사용하여 목록에서 항목을 구분합니다. 예를 들어 다음 값을 가진 Message 요소가 있습니다.

<Message Text="This is my list of TXT files: @(TXTFile)"/>

@(TXTFile) 항목 목록에 App1.txt, App2.txtApp3.txt 항목이 포함되는 경우 다음과 같은 메시지가 표시됩니다.

This is my list of TXT files: App1.txt;App2.txt;App3.txt

기본 동작을 변경하려는 경우 고유한 구분 기호를 지정할 수 있습니다. 항목 목록 구분 기호를 지정하는 구문은 다음과 같습니다.

@(ItemListName, '<separator>')

구분 기호는 단일 문자 또는 문자열이며 작은따옴표로 묶어야 합니다.

항목 사이에 쉼표 및 공백을 삽입하려면

  • 다음과 유사한 항목 표기법을 사용합니다.

    @(TXTFile, ', ')

예시

이 예제에서 Exec 작업은 findstr 도구를 실행하여 Phrases.txt 파일에 지정된 텍스트 문자열을 찾습니다. findstr 명령에서 리터럴 검색 문자열은 /c: 스위치로 나타나므로 항목 구분 기호 /c:@(Phrase) 항목 목록에 있는 항목 사이에 삽입됩니다.

이 예제에서 해당하는 명령줄 명령은 다음과 같습니다.

findstr /i /c:hello /c:world /c:msbuild phrases.txt

<Project DefaultTargets = "Find"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >

    <ItemGroup>
        <Phrase Include="hello"/>
        <Phrase Include="world"/>
        <Phrase Include="msbuild"/>
    </ItemGroup>

    <Target Name = "Find">
        <!-- Find some strings in a file -->
        <Exec Command="findstr /i /c:@(Phrase, ' /c:') phrases.txt"/>
    </Target>
</Project>