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

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

Для конкретного файла укажите в файле проекта (.vcxproj) командную строку для выполнения, любые другие входные или выходные файлы, а также сообщение для отображения. Если MSBuild определяет, что выходные файлы устарели относительно входных файлов, он отображает сообщение и выполняет средство командной строки.

Указание пользовательских средств сборки и пользовательских шагов сборки

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

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

Добавление настраиваемого инструмента сборки

  1. Добавьте группу элементов в файл проекта и добавьте элемент для каждого входного файла. Укажите команду и его входные данные, выходные данные и сообщение в виде метаданных элемента, как показано здесь. В этом примере предполагается, что файл с именем "faq.txt" существует в том же каталоге, что и проект. Пользовательский шаг сборки копирует его в выходной каталог.

    <ItemGroup>
      <CustomBuild Include="faq.txt">
        <Message>Copying readme...</Message>
        <Command>copy %(Identity) $(OutDir)%(Identity)</Command>
        <Outputs>$(OutDir)%(Identity)</Outputs>
      </CustomBuild>
    </ItemGroup>
    

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

  1. Добавьте следующую группу свойств в файл проекта. Необходимо указать по крайней мере один из целевых объектов. Вы можете опустить другое, если вы заинтересованы только в выполнении шага сборки до (или после) определенного целевого объекта. В этом примере настраиваемый шаг выполняется после компиляции, но перед компоновкой.

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

См. также

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