MSBuild

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Romiro27 (обсуждение | вклад) в 01:23, 18 октября 2020 (обновление). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
MSBuild
Логотип программы MSBuild
Тип Автоматизация сборки с синтаксисом XML
Разработчик Microsoft
Написана на C#
Операционные системы Linux, macOS и Windows
Последняя версия 16.7.0.37604 (10 сентября 2020)[1]
Репозиторий 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)).

Примечания

Ссылки