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


Введение в MSBuild для разработчиков WDK

В этом разделе приведены основные термины MSBuild для разработчиков WDK, знакомых с Build.exe и NMake.exe. В этом разделе показано создание простых проектов MSBuild.

Основные понятия Nmake, относящиеся к MSBuild

Если вы работали с Build.exe и предыдущими версиями WDK (до WDK 8), вы, вероятно, знакомы с терминологией и понятиями, которые используются в NMake.exe.

  • команда — вызывает средство командной строки.
  • target — описывает именованную последовательность команд.
  • зависимость — описывает целевые объекты, зависящие от других целевых объектов.
  • Nmake вызывается в файле make с одним или несколькими целевыми объектами, указанными. Затем он выполняет все зависимости рекурсивно, а затем команды целевого объекта.
  • Файлы Nmake могут включать другие файлы для надежного управления структурой сборки.
  • Nmake также поддерживает создание именованных переменных, которые будут заменены параметрами команд.
  • Nmake также поддерживает автоматические переменные, назначенные самим Make.exe, например имя текущего каталога или пути.
  • Цель никогда не будет выполняться дважды во время одной сборки. После выполнения предполагается, что цель завершила свою работу и не будет запускаться снова, даже если последующая цель в процессе сборки зависит от неё.

Основные понятия MSBuild

  • Основным расширением файла MSBuild для проектов C++ является .vcxproj.

  • Команды теперь называются задачами, и они не просто вызовы процессов командной строки. Вместо этого задачи — это единицы исполняемого кода, который MSBuild может использовать для выполнения атомарных операций сборки. Полный список задач см. в статье MSBuild Tasks Specific to Visual C++.

  • MSBuild импортирует задачи из сборок среды CLR с элементом UsingTask , как показано в следующем примере.

    <UsingTask TaskName="TaskName" AssemblyName="AssemblyName" />
    
  • Целевые задачи группируются вместе в определенном порядке и позволяют процессу сборки разделиться на меньшие единицы.

  • Свойство PropertyGroup позволяет определять свойства с помощью понятного для человека формата. В следующем примере показан формат PropertyGroup .

    <PropertyGroup>
      <ProductVersion>9.0.30729</ProductVersion>
    </PropertyGroup>
    
  • Элемент является объектно-ориентированным вариантом свойства. Хотя формат свойства имеет имя или значение, формат элемента — имя или объект, где объект имеет несколько атрибутов. Элементы — это массивы объектов.

  • Свойства указываются в формате $(project), а элементы указываются в формате @(name).

  • ItemGroup — это коллекция элементов.

  • ItemGroups обычно представляет собой список всех скомпилированных файлов. Затем коллекция файлов передается задаче с помощью нотации @(itemname ). Дополнительные сведения об использовании элементов см. в разделе "Элементы MSBuild".

  • MSBuild имеет ряд встроенных свойств, которые также можно использовать в файле проекта.

  • Дополнительные сведения о задачах MSBuild и сборке см. в разделе "Основные понятия MSBuild" и справочник по MSBuild.