Руководство по 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.