MSBuild
MSBuild | |||
---|---|---|---|
![]() | |||
Тип | Автоматизация сборки с синтаксисом XML | ||
Разработчик | .NET Foundation | ||
Написана на | C# | ||
Операционные системы | Linux, macOS, Windows | ||
Последняя версия | 17.3.1[1] (15 августа 2022 ) | ||
Репозиторий | 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)).
Примечания
[править | править код]- ↑ "v17.3.1". Архивировано 19 февраля 2023. Дата обращения: 25 января 2023.
- ↑ Лицензия в репозитории Github . Дата обращения: 12 июля 2020. Архивировано 16 мая 2017 года.
Ссылки
[править | править код]- 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