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