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


Руководство по MSBuild для разработчиков WDK

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

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

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

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

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

  • Расширение main MSBuild для проектов C++ .vcxproj.

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

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

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

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

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

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

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

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

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

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