방법: MSBuild 프로젝트에 사용자 지정 빌드 도구 추가
사용자 지정 빌드 도구는 특정 파일과 연결된 사용자 정의 명령줄 도구입니다.
특정 파일의 경우 실행할 명령줄, 다른 입력 또는 출력 파일 및 표시할 메시지를 프로젝트 파일(.vcxproj
)에 지정합니다. MSBuild가 입력 파일을 기준으로 출력 파일이 만료된 것으로 확인되면 메시지를 표시하고 명령줄 도구를 실행합니다.
사용자 지정 빌드 도구 및 사용자 지정 빌드 단계 지정
사용자 지정 빌드 도구가 실행되는 시간을 지정하려면 프로젝트 파일의 CustomBuildBeforeTargets
및 CustomBuildAfterTargets
XML 요소 중 하나 또는 둘 다 사용합니다. 예를 들어 사용자 지정 빌드 도구가 MIDL 컴파일러 이후, C/C++ 컴파일러 이전에 실행되도록 지정할 수 있습니다. CustomBuildBeforeTargets
특정 대상이 실행되기 전에 도구를 실행할 요소를 지정합니다. CustomBuildAfterTargets
요소를 사용하여 특정 대상이 실행된 후 도구를 실행합니다. 두 요소를 모두 사용하여 두 대상의 실행 간에 도구를 실행합니다. 두 요소를 모두 지정하지 않으면 사용자 지정 빌드 도구는 MIDL 대상 앞에 있는 기본 위치에서 실행됩니다.
사용자 지정 빌드 단계 및 사용자 지정 빌드 도구는 CustomBuildBeforeTargets
및 CustomBuildAfterTargets
XML 요소에 지정된 정보를 공유합니다. 프로젝트 파일에서 관련 대상을 한 번 지정합니다.
사용자 지정 빌드 도구를 추가하려면
프로젝트 파일에 항목 그룹을 추가하고 각 입력 파일의 항목을 추가합니다. 여기에 표시된 것처럼 명령과 명령의 입력, 출력 및 메시지를 항목 메타데이터로 지정합니다. 이 예제에서는 “faq.txt” 파일이 프로젝트와 동일한 디렉터리에 있다고 가정합니다. 사용자 지정 빌드 단계에서 출력 디렉터리에 복사합니다.
<ItemGroup> <CustomBuild Include="faq.txt"> <Message>Copying readme...</Message> <Command>copy %(Identity) $(OutDir)%(Identity)</Command> <Outputs>$(OutDir)%(Identity)</Outputs> </CustomBuild> </ItemGroup>
빌드에서 사용자 지정 빌드 도구가 실행되는 위치를 정의하려면
다음 속성 그룹을 프로젝트 파일에 추가합니다. 대상 중 하나 이상을 지정해야 합니다. 빌드 단계가 특정 대상 이전(또는 이후)으로 실행되도록 하는 데만 관심이 있는 경우 다른 단계를 생략할 수 있습니다. 이 예제에서는 컴파일 이후, 연결하기 전에 사용자 지정 단계를 수행합니다.
<PropertyGroup> <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets> <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets> </PropertyGroup>
참고 항목
연습: MSBuild를 사용하여 C++ 프로젝트 만들기
방법: MSBuild 프로젝트에서 빌드 이벤트 사용
방법: MSBuild 프로젝트에 사용자 지정 빌드 단계 추가
MSBuild 명령 및 속성에 대한 일반적인 매크로
MSBuild 잘 알려진 항목 메타데이터