Практическое руководство. Добавление пользовательского шага построения в проекты MSBuild

Настраиваемый этап сборки — это этап, определяемый пользователем. Настраиваемый этап сборки выполняется так же, как и любой другой этап программы командной строки, например стандартный этап компиляции или компоновки.

Задайте настраиваемый этап сборки в файле проекта (VCXPROJ). В этом этапе можно указать командную строку для выполнения, любые дополнительные входные или выходные файлы, а также отображаемые сообщения. Если средство MSBuild определяет, что выходные файлы устарели по отношению к входным, оно отображает соответствующее сообщение и выполняет команду.

Чтобы указать место настраиваемого этапа сборки в последовательности целей сборки, используйте в файле проекта один или оба XML-элемента CustomBuildAfterTargets и CustomBuildBeforeTargets. Например, можно указать, что настраиваемый этап сборки выполняется после цели средства компоновки и перед целью средства манифеста. Фактический набор доступных целей зависит от конкретной сборки.

Укажите элемент CustomBuildBeforeTargets, чтобы выполнять настраиваемый этап сборки перед запуском определенной цели. Укажите элемент CustomBuildAfterTargets для выполнения этапа после определенной цели. Укажите оба элемента для выполнения этапа между выполнением двух целей. Если элементы не указаны, настраиваемое средство сборки выполняется в расположении по умолчанию, которое находится после цели Компоновка.

Настраиваемые этапы сборки и настраиваемые инструменты сборки используют общие сведения, указанные в XML-элементах CustomBuildBeforeTargets и CustomBuildAfterTargets. Поэтому эти цели нужно указать в файле проекта один раз.

Определение действий, выполняемых настраиваемым этапом сборки

  1. Добавьте группу свойств в файл проекта. В этой группе свойств укажите команду, ее входные и выходные данные, а также сообщение, как показано в приведенном ниже примере. В этом примере создается CAB-файл из файла main.cpp, созданного в пошаговом руководстве: использование 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>
    

См. также

Пошаговое руководство. Создание проекта C++ с помощью MSBuild
Практическое руководство. Использование событий сборки в проектах MSBuild
Практическое руководство. Добавление пользовательских средств сборки в проекты MSBuild