Практическое руководство. Добавление пользовательского шага построения в проекты 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