Практическое руководство. Добавление пользовательских средств построения в проекты MSBuild
Пользовательский инструмент построения — это определенная пользователем программа командной строки, связанная с конкретным файлом.
Для конкретного файла в файле проекта (с расширением VCXPROJ) указывается командная строка для выполнения, какие-либо дополнительные входные и выходные файлы, а также сообщение для отображения. Если MSBuild определяет, что выходные файлы неактуальны по отношению к входным файлам, то отображает сообщение и выполняет программу командной строки.
Для указания, когда следует выполнять пользовательский инструмент построения, в файле проекта используется один или оба XML-элемента CustomBuildBeforeTargets и CustomBuildAfterTargets. Например, можно указать, что пользовательский инструмент построения выполняется после компилятора MIDL и перед компилятором C/C++. Чтобы выполнить пользовательский инструмент построения перед выполнением конкретного целевого объекта, следует указать элемент CustomBuildBeforeTargets; чтобы выполнить этот инструмент после конкретного целевого объекта, следует указать элемент CustomBuildAfterTargets; чтобы выполнить этот инструмент между выполнениями двух целевых объектов, следует указать оба элемента. Если не указан ни один из элементов, то пользовательский инструмент построения выполняется в расположении по умолчанию, т. е. перед целевым объектом MIDL.
Пользовательские этапы построения и пользовательские инструменты построения совместно используют сведения, заданные в XML-элементах CustomBuildBeforeTargets и CustomBuildAfterTargets. Следует указывать эти целевые объекты в файле проекта только однократно.
Добавление пользовательского инструмента построения
Добавьте в файл проекта группу элементов, а затем добавьте по элементу для каждого входного файла. Укажите команду, дополнительные входные и выходные данные, а также сообщение в качестве метаданных элемента, как показано далее. В этом примере предполагается, что файл с именем "faq.txt" существует в одном каталоге с проектом.
<ItemGroup> <CustomBuild Include="faq.txt"> <Message>Copying readme...</Message> <Command>copy %(Identity) $(OutDir)%(Identity)</Command> <Outputs>$(OutDir)%(Identity)</Outputs> </CustomBuild> </ItemGroup>
Определение места в построении, в котором будут выполняться пользовательские инструменты построения
Добавьте в файл проекта следующую группу свойств. Следует указать хотя бы один целевой объект, и если планируется выполнение этапа построения только до (или после) конкретного целевого объекта, то остальные целевые объекты можно не указывать. В данном примере пользовательский этап выполняется после компиляции и перед компоновкой.
<PropertyGroup> <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets> <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets> </PropertyGroup>
См. также
Задачи
Пошаговое руководство. Использование MSBuild для создания проекта Visual C++
Практическое руководство. Использование событий построения в проектах MSBuild
Практическое руководство. Добавление пользовательского шага построения в проекты MSBuild