Практическое руководство. Добавление пользовательского этапа сборки в проекты MSBuildHow to: Add a Custom Build Step to MSBuild Projects

Настраиваемый этап сборки — это этап, определяемый пользователем.A custom build step is a user-defined step in a build. Настраиваемый этап сборки выполняется так же, как и любой другой этап программы командной строки, например стандартный этап компиляции или компоновки.A custom build step behaves like any other command tool step, such as the standard compile or link tool step.

Задайте настраиваемый этап сборки в файле проекта (VCXPROJ).Specify a custom build step in the project file (.vcxproj). В этом этапе можно указать командную строку для выполнения, любые дополнительные входные или выходные файлы, а также отображаемые сообщения.The step can specify a command line to execute, any additional input or output files, and a message to display. Если средство MSBuild определяет, что выходные файлы устарели по отношению к входным, оно отображает соответствующее сообщение и выполняет команду.If MSBuild determines that your output files are out-of-date with regard to your input files, it displays the message and executes the command.

Чтобы указать место настраиваемого этапа сборки в последовательности целей сборки, используйте в файле проекта один или оба XML-элемента CustomBuildAfterTargets и CustomBuildBeforeTargets.To specify the location of the custom build step in the sequence of build targets, use one or both of the CustomBuildAfterTargets and CustomBuildBeforeTargets XML elements in the project file. Например, можно указать, что настраиваемый этап сборки выполняется после цели средства компоновки и перед целью средства манифеста.For example, you could specify that the custom build step runs after the link tool target and before the manifest tool target. Фактический набор доступных целей зависит от конкретной сборки.The actual set of available targets depends on your particular build.

Укажите элемент CustomBuildBeforeTargets, чтобы выполнять настраиваемый этап сборки перед запуском определенной цели. Укажите элемент CustomBuildAfterTargets для выполнения этапа после определенной цели. Укажите оба элемента для выполнения этапа между выполнением двух целей.Specify the CustomBuildBeforeTargets element to execute the custom build step before a particular target runs, the CustomBuildAfterTargets element to execute the step after a particular target runs, or both elements to execute the step between two adjacent targets. Если элементы не указаны, настраиваемое средство сборки выполняется в расположении по умолчанию, которое находится после цели Компоновка.If neither element is specified, your custom build tool executes at its default location, which is after the Link target.

Настраиваемые этапы сборки и настраиваемые инструменты сборки используют общие сведения, указанные в XML-элементах CustomBuildBeforeTargets и CustomBuildAfterTargets.Custom build steps and custom build tools share the information specified in the CustomBuildBeforeTargets and CustomBuildAfterTargets XML elements. Поэтому эти цели нужно указать в файле проекта один раз.Therefore, specify those targets just one time in your project file.

Определение действий, выполняемых настраиваемым этапом сборкиTo define what is executed by the custom build step

  1. Добавьте группу свойств в файл проекта.Add a property group to the project file. В этой группе свойств укажите команду, ее входные и выходные данные, а также сообщение, как показано в приведенном ниже примере.In this property group, specify the command, its inputs and outputs, and a message, as shown in the following example. В этом примере создается CAB-файл из файла main.cpp, созданного в пошаговом руководстве по использованию MSBuild для создания проекта C++.This example creates a .cab file from the main.cpp file you created in Walkthrough: Using MSBuild to Create a C++ Project.

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

Определение места в сборке для выполнения настраиваемого этапаTo define where in the build the custom build step will execute

  1. Добавьте следующую группу свойств в файл проекта.Add the following property group to the project file. Можно указать обе цели или опустить одну из них, если настраиваемый этап должен выполняться просто до или после определенной цели.You can specify both targets, or you can omit one if you just want the custom step to execute before or after a particular target. В этом примере средству MSBuild предписывается выполнить настраиваемый этап после этапа компиляции, но до этапа компоновки.This example tells MSBuild to perform the custom step after the compile step but before the link step.

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

См. такжеSee also

Пошаговое руководство: Использование MSBuild для создания проекта C++Walkthrough: Using MSBuild to Create a C++ Project
Практическое руководство. Использование событий сборки в проектах MSBuildHow to: Use Build Events in MSBuild Projects
Практическое руководство. Добавление пользовательских средств сборки в проекты MSBuildHow to: Add Custom Build Tools to MSBuild Projects