MSBuild
![]() | |
Разработчик(и) | Microsoft , .NET Foundation |
---|---|
Первоначальный выпуск | 2003 год |
Стабильная версия | v17.8.3 / 15 ноября 2023 г [1] |
Репозиторий | |
Написано в | С# |
Операционная система | Кросс-платформенный |
Платформа | .NET Framework , .NET |
Тип | Инструмент сборки |
Лицензия | МОЯ лицензия |
Веб-сайт | документы ![]() |
Microsoft Build Engine или MSBuild , [2] [3] — это набор с открытым исходным кодом бесплатных инструментов сборки для управляемого кода в рамках Common Language Infrastructure, а также собственного C и C++ кода . Впервые он был выпущен в 2003 году и был частью .NET Framework . MSBuild входит в состав Visual Studio MSBuild , но его также можно запускать независимо через интерфейс командной строки . [4]
Обзор
[ редактировать ]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 |
|
17.0 | 2022 |
|
Терминология
[ редактировать ]![]() | Этот раздел может сбивать с толку или быть неясным для читателей . В частности, непонятно, о чем идет речь в этом разделе и какова природа, скажем, «Цели» или «Задачи». Примеры помогут. ( Апрель 2013 г. ) |
- Цель
- Цель . содержит набор задач, которые MSBuild должен выполнить Фокусом MSBuild является цель результата , указанная при вызове MSBuild с файлом проекта. Это связано с тем, что проект может содержать несколько записей Target , каждая из которых выполняется последовательно (и условно). Последующие зависимые цели выполняются перед запрошенной целью. Поток выполнения текущей цели можно направить с помощью следующих атрибутов: Condition, BeforeTargets, AfterTargets и DependsOnTargets. Каждая Цель может быть автономной и содержать необходимые Задачи для ее выполнения. Цель обычно представляет собой действие, выполняемое над файлом, набором файлов или каталогом.
- Задача
- Задача — это команда, которая выполняется для достижения Цели. Задачи используются для группировки и выполнения любого количества действий в процессе сборки. Обычно они реализуются в сборке .NET как класс, который наследуется от класса Task или реализует интерфейс ITask. Многие базовые задачи поставляются как часть .NET Framework. [14] а задачи, разработанные сообществом, доступны бесплатно. Некоторые примеры задач включают копирование файлов, создание каталогов или анализ XML.
- Свойства и предметы
- MSBuild предоставляет свойства и элементы , которые концептуально эквивалентны make макросам . Свойства задают статические значения, тогда как элементы обычно используются для определения наборов файлов или папок, над которыми можно выполнять задачи. Указание файлов в элементах упрощается благодаря поддержке подстановочных знаков.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Последний выпуск» . Майкрософт/мсбилд. Гитхаб . Майкрософт . Проверено 20 августа 2022 г.
- ^ «microsoft/msbuild: Microsoft Build Engine (MSBuild) — это платформа сборки для .NET и Visual Studio» . Гитхаб . Майкрософт . Проверено 23 июля 2019 г.
- ^ Хашими, Сайед Ибрагим; Варфоломей, Уильям (2009). Внутри Microsoft Build Engine: использование MSBuild и Team Foundation Build . Майкрософт Пресс. п. 406. ИСБН 978-0-7356-2628-7 .
- ^ «МСБилд» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г.
- ^ Ландер, Рич (18 марта 2015 г.). «MSBuild Engine теперь имеет открытый исходный код на GitHub» . .NET-блог. Блоги MSDN . Майкрософт . Проверено 23 июля 2019 г.
- ^ Jump up to: а б «Что нового в MSBuild 12.0» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г.
- ^ «Обзор мультитаргетинга MSBuild» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г.
- ^ «Создание, тестирование и развертывание» . Что нового в Visual Studio 2005. MSDN . Майкрософт. Архивировано из оригинала 26 августа 2014 г.
- ^ Снит, Тим (19 июля 2004 г.). «MSBuild: новая система сборки для Visual Studio 2005 и Longhorn» . Тим Снит. Блоги MSDN . Проверено 22 апреля 2018 г.
- ^ Англия, Чак (25 февраля 2010 г.). «Начало работы с MSBuild» . Блог Visual Studio. Блоги MSDN . Проверено 22 апреля 2018 г.
- ^ «Стандартные и пользовательские конфигурации набора инструментов» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г.
- ^ «Что нового в MSBuild 15» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г.
- ^ «Что нового в MSBuild 16.0» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г.
- ^ «Справочник по задаче MSBuild» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г.
Дальнейшее чтение
[ редактировать ]- Крецлер, Брайан (2011). Обман MSBuild: 99 способов подчинить механизм сборки своей воле . Компания K Cross Seven Ranch. п. 426. ИСБН 978-0-615-50907-5 .
- Хашими, Сайед Ибрагим (июнь 2006 г.). «Внутри MSBuild: компиляция приложений с настраиваемыми задачами для Microsoft Build Engine» . Журнал MSDN . Майкрософт. Архивировано из оригинала 11 апреля 2015 года . Проверено 11 апреля 2013 г.
- Хашими, Сайед Ибрагим (март 2007 г.). «Хитрости WiX: автоматизация выпусков с помощью MSBuild и XML установщика Windows» . Журнал MSDN . Майкрософт . Проверено 11 апреля 2013 г.
- Хашими, Сайед Ибрагим (февраль 2009 г.). «MSBuild: лучшие практики создания надежных сборок, часть 1» . Журнал MSDN . Майкрософт . Проверено 11 апреля 2013 г.
- Хашими, Сайед Ибрагим (март 2009 г.). «MSBuild: лучшие практики создания надежных сборок, часть 2» . Журнал MSDN . Майкрософт . Проверено 11 апреля 2013 г.
- Рейф, Андреас (10 июня 2010 г.). «Einführung in Microsoft Build-Management-Technik MSBuild» [Введение в технологию управления сборкой Microsoft, MSBuild]. heise Developer (на немецком языке). Хайнц Хайзе . Проверено 11 апреля 2013 г.
- Джонс, Майк; Уоррен, Женевьева; Блом, Майк; Робертсон, Колин; Хогенсон, Гордон; Цай, Сайсанг (4 ноября 2016 г.). «Целевая платформа MSBuild и целевая платформа» . MSBuild. Документы Майкрософт . Проверено 19 февраля 2018 г.