Microsoft Build Engine , более известный как MSBuild , [2] [3] - это бесплатный набор инструментов сборки с открытым исходным кодом для управляемого кода, а также для собственного кода C ++, который был частью .NET Framework . Visual Studio зависит от MSBuild, но не наоборот. [4] Управление жизненным циклом приложений Visual Studio зависит от MSBuild для выполнения командных сборок через Azure DevOps Server . [4]
Разработчики) | Microsoft |
---|---|
Первый выпуск | 2003 |
Стабильный выпуск | v16.7.0.37604 / 26 июля 2020 г . [1] |
Репозиторий | |
Написано в | C # |
Операционная система | Кроссплатформенность |
Платформа | .NET Framework , .NET Core |
Тип | Инструмент сборки |
Лицензия | Лицензия MIT |
Веб-сайт | документы |
Обзор
MSBuild это инструмент для сборки , что позволяет автоматизировать процесс создания программного продукта, включая составление в исходный код , упаковки , тестирования, развертывания и создания документации. С помощью MSBuild можно создавать проекты и решения Visual Studio без установленной интегрированной среды разработки Visual Studio . MSBuild бесплатен и имеет открытый исходный код . [5] MSBuild ранее входил в состав .NET Framework ; однако, начиная с Visual Studio 2013 , вместо этого он входит в состав Visual Studio. [6] MSBuild - это функциональная замена утилиты nmake , которая по-прежнему используется в проектах, созданных в более старых версиях Visual Studio.
MSBuild работает с файлами проекта MSBuild, которые имеют синтаксис XML, аналогичный синтаксису Apache Ant или NAnt . Несмотря на то, что синтаксис основан на четко определенной XML-схеме, фундаментальная структура и работа сравнимы с традиционной утилитой make в Unix : пользователь указывает, что будет использоваться (обычно файлы исходного кода) и каким должен быть результат (обычно статический библиотека, DLL или исполняемое приложение), но утилита сама решает, что делать и в каком порядке выполнять сборку.
MSBuild может построить проект на основе выбранной поддерживаемой версии .NET Framework. Эта функция называется «мультитаргетинг». Однако любая сборка проекта может одновременно нацеливаться только на одну версию платформы. [7]
История
MSBuild был впервые создан в 2003 году для .NET Framework 2.0 для использования в Visual Studio 2005 (кодовое имя Whidbey) [8] и Windows Vista (кодовое имя Longhorn). [9] [10]
Версии
Версия | .NET Framework | Версия Visual Studio | Обычные места установки (x86) [11] |
---|---|---|---|
2.0 | 2.0 | 2005 г. | C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 |
3.5 | 3.5 | 2008 г. | C: \ Windows \ Microsoft.NET \ Framework \ v3.5 |
4.7.3062.0 | 4.0 | 2010 г. | C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 |
4.8.3761.0 | 4.5.2 | 2012 г. | C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 |
12,0 [6] | 4.5.2 | 2013 | C: \ Program Files (x86) \ MSBuild \ 12.0 \ Bin |
14.0 | 4.6 | 2015 г. | C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin |
15,0 [12] | 4,7 | 2017 г. |
|
16,0 [13] | 4.7.2 | 2019 г. |
|
Терминология
- Цель
- Target содержит набор задач для MSBuild для выполнения. В центре внимания MSBuild находится результат Target, указанный при вызове MSBuild с файлом проекта. Это связано с тем, что проект может содержать несколько записей Target , каждая из которых выполняется последовательно (и условно). Последующие зависимые цели выполняются до запрошенной цели. Поток выполнения текущей цели можно направить с помощью следующих атрибутов: Condition, BeforeTargets, AfterTargets и DependsOnTargets. Каждая цель может быть автономной с необходимыми задачами для выполнения. Цель обычно - это действие, выполняемое над файлом, набором файлов или каталогом.
- Задача
- Задача представляет собой команду , которая выполняется для того , чтобы завершить объект. Задачи используются для группировки и выполнения любого количества действий в процессе сборки. Обычно они реализуются в сборке .NET как класс, который наследуется от класса Task или реализует интерфейс ITask. Многие базовые задачи поставляются как часть .NET Framework [14], а задачи, разработанные сообществом, находятся в свободном доступе. Некоторые примеры задач включают копирование файлов, создание каталогов или синтаксический анализ XML.
- Свойства и предметы
- MSBuild предоставляет свойства и элементы , которые концептуально эквивалентны макросам make . Свойства определяют статические значения, тогда как элементы обычно используются для определения наборов файлов или папок, с которыми нужно выполнять Задачи. Указание файлов в элементах упрощается благодаря поддержке подстановочных знаков.
Смотрите также
- Список программного обеспечения для автоматизации сборки
Рекомендации
- ^ "Последний выпуск" . Microsoft / msbuild. GitHub . Microsoft . Проверено 13 сентября 2020 .
- ^ «microsoft / msbuild: Microsoft Build Engine (MSBuild) - это платформа сборки для .NET и Visual Studio» . GitHub . Microsoft . Проверено 23 июля 2019 .
- ^ Хашими, Сайед Ибрагим; Варфоломей, Уильям (2009). Внутри Microsoft Build Engine: использование MSBuild и Team Foundation Build . Microsoft Press. п. 406. ISBN. 978-0-7356-2628-7.
- ^ а б «MSBuild» . MSBuild. Документы Microsoft . Проверено 23 июля 2019 .
- ^ Лендер, Рич (18 марта 2015 г.). «MSBuild Engine теперь является открытым исходным кодом на GitHub» . Блог .NET. Блоги MSDN . Microsoft . Проверено 23 июля 2019 .
- ^ а б «Что нового в MSBuild 12.0» . MSBuild. Документы Microsoft . Проверено 23 июля 2019 .
- ^ «Обзор мультитаргетинга MSBuild» . MSBuild. Документы Microsoft . Проверено 23 июля 2019 .
- ^ «Сборка, тестирование и развертывание» . Что нового в Visual Studio 2005. MSDN . Microsoft. Архивировано из оригинала на 2014-08-26.
- ^ Сниз, Тим (19 июля 2004 г.). «MSBuild: новая система сборки для Visual Studio 2005 и Longhorn» . Тим Снит. Блоги MSDN . Проверено 22 апреля 2018 .
- ^ Англия, Чак (25 февраля 2010 г.). «Начало работы с MSBuild» . Блог Visual Studio. Блоги MSDN . Проверено 22 апреля 2018 .
- ^ «Стандартные и пользовательские конфигурации Toolset» . MSBuild. Документы Microsoft . Проверено 23 июля 2019 .
- ^ «Что нового в MSBuild 15» . MSBuild. Документы Microsoft . Проверено 23 июля 2019 .
- ^ «Что нового в MSBuild 16.0» . MSBuild. Документы Microsoft . Проверено 23 июля 2019 .
- ^ «Справочник по задаче MSBuild» . MSBuild. Документы Microsoft . Проверено 23 июля 2019 .
дальнейшее чтение
- Крецлер, Брайан (2011). Уловки MSBuild: 99 способов подчинить движок сборки вашей воле . K Cross Seven Ranch Company. п. 426. ISBN. 978-0-615-50907-5.
- Хашими, Сайед Ибрагим (июнь 2006 г.). «Внутри MSBuild: компиляция приложений с пользовательскими задачами для Microsoft Build Engine» . Журнал MSDN . Microsoft. Архивировано из оригинала 11 апреля 2015 года . Проверено 11 апреля 2013 года .
- Хашими, Сайед Ибрагим (март 2007 г.). «Уловки WiX: автоматизация выпусков с помощью MSBuild и установщика Windows XML» . Журнал MSDN . Microsoft . Проверено 11 апреля 2013 года .
- Хашими, Сайед Ибрагим (февраль 2009 г.). «MSBuild: передовые методы создания надежных сборок, часть 1» . Журнал MSDN . Microsoft . Проверено 11 апреля 2013 года .
- Хашими, Сайед Ибрагим (март 2009 г.). «MSBuild: передовые методы создания надежных сборок, часть 2» . Журнал MSDN . Microsoft . Проверено 11 апреля 2013 года .
- Рейф, Андреас (10 июня, 2010 г.). «Einführung в Microsoft Build-Management-Technik MSBuild» [Введение в технологию управления сборкой Microsoft, MSBuild]. Heise Developer (на немецком языке). Heinz Heise . Проверено 11 апреля 2013 года .
- Джонс, Майк; Уоррен, Женевьева; Блом, Майк; Робертсон, Колин; Хогенсон, Гордон; Цай, Сайсанг (4 ноября 2016 г.). «Целевая платформа и целевая платформа MSBuild» . MSBuild. Документы Microsoft . Проверено 19 февраля 2018 .
Внешние ссылки
- Официальный веб-сайт