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


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