Поделиться через


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

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

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

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

Чтобы выполнить пользовательский этап построения перед запуском конкретного целевого объекта, следует указать элемент CustomBuildBeforeTargets; чтобы выполнить этот этап после выполнения конкретного целевого объекта, следует указать элемент CustomBuildAfterTargets; чтобы выполнить этот этап между двумя смежными целевыми объектами, следует указать оба элемента. Если не указан ни один из элементов, то пользовательский инструмент построения выполняется в расположении по умолчанию, т. е. после целевого объекта Link.

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

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

  • Добавьте в файл проекта группу свойств. В этой группе свойств укажите команду, ее входные и выходные данные, а также сообщение, как показано в следующем примере. В данном примере создается CAB-файл из файла main.cpp, созданного в руководстве Пошаговое руководство. Использование MSBuild для создания проекта Visual C++.

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

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

  • Добавьте в файл проекта следующую группу свойств. Можно указать оба целевых объекта или же опустить один из них, если планируется выполнение пользовательского этапа только до или только после конкретного целевого объекта. В этом примере задается, что MSBuild следует выполнять пользовательский этап после этапа компиляции, но перед этапом компоновки.

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

См. также

Задачи

Пошаговое руководство. Использование MSBuild для создания проекта Visual C++

Практическое руководство. Использование событий построения в проектах MSBuild

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