방법: MSBuild 프로젝트에 사용자 지정 빌드 도구 추가

사용자 지정 빌드 도구는 특정 파일과 연결된 사용자 정의 명령줄 도구입니다.

특정 파일의 경우 실행할 명령줄, 다른 입력 또는 출력 파일 및 표시할 메시지를 프로젝트 파일(.vcxproj)에 지정합니다. MSBuild가 입력 파일을 기준으로 출력 파일이 만료된 것으로 확인되면 메시지를 표시하고 명령줄 도구를 실행합니다.

사용자 지정 빌드 도구 및 사용자 지정 빌드 단계 지정

사용자 지정 빌드 도구가 실행되는 시간을 지정하려면 프로젝트 파일의 CustomBuildBeforeTargetsCustomBuildAfterTargets XML 요소 중 하나 또는 둘 다 사용합니다. 예를 들어 사용자 지정 빌드 도구가 MIDL 컴파일러 이후, C/C++ 컴파일러 이전에 실행되도록 지정할 수 있습니다. CustomBuildBeforeTargets 특정 대상이 실행되기 전에 도구를 실행할 요소를 지정합니다. CustomBuildAfterTargets 요소를 사용하여 특정 대상이 실행된 후 도구를 실행합니다. 두 요소를 모두 사용하여 두 대상의 실행 간에 도구를 실행합니다. 두 요소를 모두 지정하지 않으면 사용자 지정 빌드 도구는 MIDL 대상 앞에 있는 기본 위치에서 실행됩니다.

사용자 지정 빌드 단계 및 사용자 지정 빌드 도구는 CustomBuildBeforeTargetsCustomBuildAfterTargets XML 요소에 지정된 정보를 공유합니다. 프로젝트 파일에서 관련 대상을 한 번 지정합니다.

사용자 지정 빌드 도구를 추가하려면

  1. 프로젝트 파일에 항목 그룹을 추가하고 각 입력 파일의 항목을 추가합니다. 여기에 표시된 것처럼 명령과 명령의 입력, 출력 및 메시지를 항목 메타데이터로 지정합니다. 이 예제에서는 “faq.txt” 파일이 프로젝트와 동일한 디렉터리에 있다고 가정합니다. 사용자 지정 빌드 단계에서 출력 디렉터리에 복사합니다.

    <ItemGroup>
      <CustomBuild Include="faq.txt">
        <Message>Copying readme...</Message>
        <Command>copy %(Identity) $(OutDir)%(Identity)</Command>
        <Outputs>$(OutDir)%(Identity)</Outputs>
      </CustomBuild>
    </ItemGroup>
    

빌드에서 사용자 지정 빌드 도구가 실행되는 위치를 정의하려면

  1. 다음 속성 그룹을 프로젝트 파일에 추가합니다. 대상 중 하나 이상을 지정해야 합니다. 빌드 단계가 특정 대상 이전(또는 이후)으로 실행되도록 하는 데만 관심이 있는 경우 다른 단계를 생략할 수 있습니다. 이 예제에서는 컴파일 이후, 연결하기 전에 사용자 지정 단계를 수행합니다.

    <PropertyGroup>
      <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets>
      <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets>
    </PropertyGroup>
    

참고 항목

연습: MSBuild를 사용하여 C++ 프로젝트 만들기
방법: MSBuild 프로젝트에서 빌드 이벤트 사용
방법: MSBuild 프로젝트에 사용자 지정 빌드 단계 추가
MSBuild 명령 및 속성에 대한 일반적인 매크로
MSBuild 잘 알려진 항목 메타데이터