MSBuild
MSBuild | |||
---|---|---|---|
![]() | |||
Тип | Автоматизация сборки с синтаксисом XML | ||
Разработчик | .NET Foundation | ||
Написана на | C# | ||
Операционные системы | Linux, macOS, Windows | ||
Последняя версия | 17.3.1[1] (15 августа 2022; 2 года назад (2022-08-15)) | ||
Репозиторий | github.com/dotnet/msbuild | ||
| |||
| |||
Лицензия | лицензия MIT[2] | ||
Сайт | docs.microsoft.com/visua… |
MSBuild — платформа сборки проекта, разработанная Microsoft. Обычно применяется в сочетании с Visual Studio. MSBuild версии 2.0 является частью .NET Framework 2.0 и предназначен для работы с Visual Studio 2005. Версия MSBuild 3.5, объединённая с .NET 3.5 (и Visual Studio 2008), позволяет собирать проекты с поддержкой .NET версий 2.0, 3.0 или 3.5 на выбор (т. н. «многоцелевая сборка», или multi-targeting).
Так как MSBuild доступен в составе .NET, то можно собирать проекты и решения Visual Studio без установленной IDE Visual Studio. MSBuild не требует дополнительных денежных отчислений.
MSBuild обрабатывает специальные файлы проекта MSBuild, имеющие схожий с Apache Ant и NAnt XML-синтаксис. Несмотря на то, что синтаксис базируется на правильно оформленной (well-defined) XML-схеме, основная структура и обработка схожа с традиционной Unix-утилитой Make: пользователь указывает исходные файлы (как правило, это файлы с исходным кодом) и что должно получиться в результате (обычно — готовое приложение), а утилита сама решает, что и в каком порядке нужно делать.
NMAKE
MSBuild — функциональная замена утилите nmake. Последняя всё ещё используется в проектах, написанных на старых версиях Visual Studio.
Цель (Target)
Задача инструмента — результирующая цель (Target), указываемая при вызове MSBuild для проектного файла. Подчинённые зависимые цели достигаются прежде основной цели. Каждая цель может содержать в себе описание необходимых задач (Tasks) для её достижения. Цель, как правило, представляет собой действие над каталогом, файлом или набором файлов.
Задача (Task)
Задача (Task) — команда, которую нужно выполнить для достижения цели (Target). Задача обычно реализуется в виде .NET-сборки как класс, наследующий интерфейс ITask от класса задачи или реализующий его. Существуют намного более удобные и готовые к использованию базовые задачи, поставляемые в составе .NET Framework, причём сообщество, разрабатывающее эти задачи, открытое и легко доступно.
Свойства и элементы
В дополнение к вышеперечисленному MSBuild обеспечивает поддержку свойств (Properties) и элементов (Items), которые концептуально схожи с макросами для Make. Свойства определяют статические значения, тогда как элементы обычно используются для определения набора файлов/папок, необходимых для выполнения задачи. Указание файлов в элементах упрощается за счёт поддержки групповых символов (wildcards).
Team Foundation Build
Visual Studio Team System также зависит от MSBuild при выполнении текущих командных сборок (Team Builds) на Team Foundation Server. Сборки по большей части выполняются не непосредственно на сервере, а на одном или нескольких удаленных серверах сборки (Build Servers) при установленном необходимом программном обеспечении (например, Team Foundation Server (Build)).
Примечания
Ссылки
- MSDN — The MSBuild Reference
- Team Foundation Build overview
- Popular MSBuild Blog
- Open Source MSBuild Community Tasks Project Архивная копия от 10 июня 2010 на Wayback Machine
- Inside MSBuild MSDN Article
- WiX Tricks-Automate Releases With MSBuild And Windows Installer XML
- MSBuild: Best Practices For Creating Reliable Builds, Part 1 (MSDN Magazine)
- MSBuild: Best Practices For Creating Reliable Builds, Part 2 (MSDN Magazine)
- MSBuild Sidekick — GUI editor and debugger for MSBuild scripts
- MSBuild Command Line Reference — parameters & switches
- ТВ-программа на MSDN, посвящённая изменениям процесса сборки в Visual Studio build при использовании MSBuild
- MSBuild — статья на RSDN