다음을 통해 공유


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

사용자 지정 빌드 단계는 빌드의 사용자 정의 단계입니다. 사용자 지정 빌드 단계는 표준 컴파일 또는 링크 도구 단계와 같은 다른 ‘명령 도구’ 단계처럼 동작합니다.

프로젝트 파일(.vcxproj)에서 사용자 지정 빌드 단계를 지정합니다. 이 단계에서는 실행할 명령줄, 추가 입력 또는 출력 파일 및 표시할 메시지를 지정할 수 있습니다. MSBuild에서 출력 파일이 입력 파일을 기준으로 최신 상태가 아니라고 확인하면 메시지를 표시하고 명령을 실행합니다.

빌드 대상 시퀀스에서 사용자 지정 빌드 단계의 위치를 지정하려면 프로젝트 파일의 CustomBuildAfterTargetsCustomBuildBeforeTargets XML 요소 중 하나 또는 둘 다 사용합니다. 예를 들어 사용자 지정 빌드 단계가 링크 도구 대상 이후와 매니페스트 대상 도구 이전에 실행되도록 지정할 수 있습니다. 사용 가능한 실제 대상 집합은 특정 빌드에 따라 다릅니다.

특정 대상이 실행되기 전에 사용자 지정 빌드 단계를 실행하려면 CustomBuildBeforeTargets 요소를 지정하고, 특정 대상 이후에 단계를 실행하려면 CustomBuildAfterTargets 요소를 지정하고, 인접하는 두 대상 사이에 단계를 실행하려면 두 요소 모두 지정합니다. 두 요소를 모두 지정하지 않으면 사용자 지정 빌드 도구는 Link 대상 뒤에 있는 기본 위치에서 실행됩니다.

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

사용자 지정 빌드 단계에서 실행할 작업을 지정하려면

  1. 프로젝트 파일에 속성 그룹을 추가합니다. 이 속성 그룹에서 다음 예제와 같이 명령, 명령의 입력과 출력 및 메시지를 지정합니다. 이 예제에서는 연습에서 만든 기본.cpp 파일에서 .cab 파일을 만듭니다. MSBuild를 사용하여 C++ 프로젝트를 만듭니다.

    <ItemDefinitionGroup>
      <CustomBuildStep>
        <Command>makecab.exe $(ProjectDir)main.cpp $(TargetName).cab</Command>
        <Outputs>$(TargetName).cab</Outputs>
        <Inputs>$(ProjectDir)main.cpp</Inputs>
      </CustomBuildStep>
    </ItemDefinitionGroup>
    

빌드에서 사용자 지정 빌드 단계를 실행할 위치를 정의하려면

  1. 다음 속성 그룹을 프로젝트 파일에 추가합니다. 두 대상을 모두 지정하거나 특정 대상 이전 또는 이후에만 사용자 지정 단계를 실행하려는 경우 하나를 생략할 수 있습니다. 이 예제에서는 MSBuild가 컴파일 단계 후, 링크 단계 전에 사용자 지정 단계를 수행하도록 지시합니다.

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

참고 항목

연습: MSBuild를 사용하여 C++ 프로젝트 만들기
방법: MSBuild 프로젝트에서 빌드 이벤트 사용
방법: MSBuild 프로젝트에 사용자 지정 빌드 도구 추가