MSBuild
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: пользователь указывает исходные файлы (как правило, это файлы с исходным кодом) и что должно получиться в результате (обычно — готовое приложение), а утилита сама решает, что и в каком порядке нужно делать.
Диагностика производительности .NET в production | Дмитрий Левченко | AzovDevMeetup 2018
- 1 NMAKE
- 2 Цель (Target)
- 3 Задача (Task)
- 4 Свойства и элементы
- 5 Team Foundation Build
- 6 Примечания
- 7 Ссылки
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)).
Никита Цуканов — Как перестать бояться и подружиться с MSBuild
Примечания
- ↑MSBuild 17.1.0. Архивировано 11 апреля 2022 года.Дата обращения: 11 апреля 2022.
- ↑Лицензия в репозитории 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 http://wikiredia.ru/wiki/MSBuild» target=»_blank»]wikiredia.ru[/mask_link]
Путь к MSBuild
Как я могу программно получить путь к MSBuild с машины, на которой запущен мой .exe?
Я могу получить версию .NET из среды, но есть ли способ получить правильную папку для версии .NET?
30.11.2008 00:12
Получить данные из формы с помощью JS очень просто: вы запрашиваете элемент формы, передаете его конструктору new FormData() и, наконец, получаете.
Если вы хотите создать свое собственное правило валидации, Laravel предоставляет возможность сделать это. Создайте правило с помощью следующей.
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно.
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату.
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно.
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей.
Перейти к ответу Данный вопрос помечен как решенный
Ответы 22
Ответ принят как подходящий
Ковыряется в реестре, похоже
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions2.0 HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions3.5 HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions4.0
может быть то, что вам нужно; запустите regedit.exe и посмотрите.
Запрос через командную строку (за Николай Ботев)
reg.exe query «HKLMSOFTWAREMicrosoftMSBuildToolsVersions4.0» /v MSBuildToolsPath
Запрос через PowerShell (на MovGP0)
dir HKLM:SOFTWAREMicrosoftMSBuildToolsVersions
Комментарии (8)Я установил Visual Studio 2017 RC и запустил командную строку разработчика, версия MSBuild — 15. +, но эта версия не отображается в реестре.
Как мне получить доступ к тому же MSBuild, который использует Dev Cmd Prompt?
MSBuild 15 находится в `C: Program Files (x86) Microsoft Visual Studio 2017 Enterprise MSBuild 15.0 Bin amd64`
Только если вы установили туда VS2017, я не смог найти в реестре ни одной точки входа для MsBuildToolsPath для набора инструментов 15.0
Согласно Дэвиду Муру на developercommunity.visualstudio.com/content/problem/2813/…, есть способ через реестр: HKEY_LOCAL_MACHINE SOFTWARE WOW6432Node Microsoft VisualStud io SxS VS7 для базового пути установки VS2017
docs.microsoft.com/en-us/visualstudio/msbuild/… «MSBuild теперь устанавливается в папку для каждой версии Visual Studio. Например, C: Program Files (x86) Microsoft Visual Studio 2017 Enterprise MSBuild» и «Значения ToolsVersion больше не устанавливаются в реестре»
Я думаю, либо убедитесь, что msbuild установлен в $ PATH, либо зная, какая версия инструментов сборки MS установлена. Или используйте Docker 🙂
30.11.2008 01:59
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions2.0 HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions3.5
укажите расположение исполняемого файла.
Но если вам нужно место для сохранения расширений задач, оно включено.
%ProgramFiles%MSBuild
Комментарии (1)Я знаю, что он довольно старый, но в любом случае: в x64-системах MSBuild-Folder находится в ProgramFiles (x86)
08.12.2008 22:08
Если вы хотите использовать MSBuild для .Net 4, вы можете использовать следующую команду PowerShell, чтобы получить путь к исполняемому файлу. Если вам нужна версия 2.0 или 3.5, просто измените переменную $ dotNetVersion.
Чтобы запустить исполняемый файл, вам нужно добавить к переменной $ msbuild 4.0″ $regKey = «HKLM:softwareMicrosoftMSBuildToolsVersions$dotNetVersion» $regProperty = «MSBuildToolsPath» $msbuildExe = join-path -path (Get-ItemProperty $regKey).$regProperty -childpath «msbuild.exe» goto :eof if not exist «%msbuild.exe%» echo error: %msbuild.exe%: not found HKLMSOFTWAREMicrosoftMSBuildToolsVersions4.0″ /v MSBuildToolsPath
Комментарии (4)Обратите внимание, что если вы хотите создать приложение для Windows Phone, ему потребуется 32-битный файл msbuild. Запрос реестра дает только 64-битную сборку msbuild на 64-битной машине.
это даст вам путь к старому (4.0) местоположению — тот, который вы, вероятно, хотите, на самом деле находится в другом месте, см. stackoverflow.com/questions/32007871/…
В моем случае это было под ComputerHKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftMSBuildToolsVersions4.0MSBuildToolsPath
16.03.2013 11:13
Для Visual Studio 2017 / MSBuild 15 Азиз Атиф (парень, который написал Эльма) написал пакетный скрипт
build.cmd Release Foo.csproj
Комментарии (3)Примечание. Поскольку VS2017 / msbuild 15.x не использует реестр для своих путей, vswhere является альтернативой для определения пути msbuild.
Кроме того, АзизАтиф — мужчина. Взгляните на это для сборок 15.1 — github.com/linqpadless/LinqPadless/blob/master/build.cmd
Также vswhere можно установить через Chocolatey: шоколадный.org/packages/vswhere
06.12.2013 23:27
Самый простой способ — открыть PowerShell и ввести
dir HKLM:SOFTWAREMicrosoftMSBuildToolsVersions
14.07.2015 13:33Вы можете использовать эту пробную команду PowerShell, чтобы получить MSBuildToolsPath из реестра.
PowerShell (из реестра)
Resolve-Path HKLM:SOFTWAREMicrosoftMSBuildToolsVersions* | Get-ItemProperty -Name MSBuildToolsPath
Выход
MSBuildToolsPath : C:Program Files (x86)MSBuild12.0binamd64 PSPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions12.0 PSParentPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions PSChildName : 12.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.CoreRegistry MSBuildToolsPath : C:Program Files (x86)MSBuild14.0binamd64 PSPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions14.0 PSParentPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions PSChildName : 14.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.CoreRegistry MSBuildToolsPath : C:WindowsMicrosoft.NETFramework64v2.0.50727 PSPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions2.0 PSParentPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions PSChildName : 2.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.CoreRegistry MSBuildToolsPath : C:WindowsMicrosoft.NETFramework64v3.5 PSPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions3.5 PSParentPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions PSChildName : 3.5 PSDrive : HKLM PSProvider : Microsoft.PowerShell.CoreRegistry MSBuildToolsPath : C:WindowsMicrosoft.NETFramework64v4.0.30319 PSPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions4.0 PSParentPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions PSChildName : 4.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.CoreRegistry
или из файловой системы
PowerShell (из файловой системы)
Resolve-Path «C:Program Files (x86)MSBuild*Binamd64MSBuild.exe» Resolve-Path «C:Program Files (x86)MSBuild*BinMSBuild.exe»
Выход
Path —- C:Program Files (x86)MSBuild12.0Binamd64MSBuild.exe C:Program Files (x86)MSBuild14.0Binamd64MSBuild.exe C:Program Files (x86)MSBuild12.0BinMSBuild.exe C:Program Files (x86)MSBuild14.0BinMSBuild.exe
Комментарии (1)Лучший ответ по этой теме.
Источник: reddeveloper.ru
Путь к MSBuild
Как я могу программно получить путь к MSBuild с компьютера, на котором работает мой .exe?
Я могу получить версию .NET из среды, но есть ли способ получить правильную папку для версии .NET?спросил(а) 2020-03-16T18:22:10+03:00 2 года, 9 месяцев назад
добавить комментарий
пожаловаться
Вы также можете распечатать путь MSBuild.exe к командной строке:reg.exe query «HKLMSOFTWAREMicrosoftMSBuildToolsVersions4.0» /v MSBuildToolsPath
ответил(а) 2020-03-16T18:33:30.795483+03:00 2 года, 9 месяцев назад
добавить комментарий
пожаловаться
Ковыряясь в реестре, похоже
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions2.0
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions3.5
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions4.0
может быть то, что вы ищете; запустите regedit.exe и посмотрите.Запрос через командную строку (по Николай Ботев)
reg.exe query «HKLMSOFTWAREMicrosoftMSBuildToolsVersions4.0» /v MSBuildToolsPath
Запрос через PowerShell (за MovGP0)
dir HKLM:SOFTWAREMicrosoftMSBuildToolsVersions
ответил(а) 2020-03-16T18:22:10+03:00 2 года, 9 месяцев назад
добавить комментарий
пожаловатьсяДля сценариев оболочки cmd в Windows 7 я использую следующий фрагмент в своем командном файле, чтобы найти MSBuild.exe в .NET Framework версии 4. Я предполагаю, что версия 4 присутствует, но не предполагайте под-версию. Это не совсем универсально, но для быстрых скриптов это может быть полезно:
set msbuild.exe=
for /D %%D in (%SYSTEMROOT%Microsoft.NETFrameworkv4*) do set msbuild.exe=%%DMSBuild.exe
Для моих целей я выхожу из командного файла с ошибкой, если это не сработало:
if not defined msbuild.exe echo error: can’t find MSBuild.exe %msbuild.exe%» echo error: %msbuild.exe%: not found . Это выполнит переменную.# valid versions are [2.0, 3.5, 4.0]
$dotNetVersion = «4.0»
$regKey = «HKLM:softwareMicrosoftMSBuildToolsVersions$dotNetVersion»
$regProperty = «MSBuildToolsPath»$msbuildExe = join-path -path (Get-ItemProperty $regKey).$regProperty -childpath «msbuild.exe»
C:Program Files (x86)MSBuild*Binamd64MSBuild.exe»
Resolve-Path «C:Program Files (x86)MSBuild*BinMSBuild.exe»Выход
Path
—-
C:Program Files (x86)MSBuild12.0Binamd64MSBuild.exe
C:Program Files (x86)MSBuild14.0Binamd64MSBuild.exe
C:Program Files (x86)MSBuild12.0BinMSBuild.exe
C:Program Files (x86)MSBuild14.0BinMSBuild.exeИсточник: progi.pro
MSBuild
Microsoft Build Engine , более известный как MSBuild , [2] [3] — это бесплатный набор инструментов сборки с открытым исходным кодом для управляемого кода , а также собственного кода C++ , который был частью .NET Framework . Visual Studio зависит от MSBuild, но не наоборот. [4] Управление жизненным циклом приложений Visual Studio зависит от MSBuild для выполнения командных сборок через Azure DevOps Server . [4]
- 1 Обзор
- 2 История
- 3 Версии
- 4 Терминология
- 5 Смотрите также
- 6 использованная литература
- 7 дальнейшее чтение
- 8 внешние ссылки
Обзор [ править ]
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]
Версии [ править ]
- C:Program Files (x86)Microsoft Visual Studio2017 BuildTools MSBuild15.0Bin
- C:Program Files (x86)Microsoft Visual Studio2017 Enterprise MSBuild15.0Bin
- C:Program Files (x86)Microsoft Visual Studio2017 Сообщество MSBuild15.0Bin
- C:Program Files (x86)Microsoft Visual Studio2019 BuildTools MSBuildCurrentBin
- C:Program Files (x86)Microsoft Visual Studio2019 Enterprise MSBuildCurrentBin
- C:Program Files (x86)Microsoft Visual Studio2019 Community MSBuildCurrentBin
- C:Program FilesMicrosoft Visual Studio2022 BuildTools MSBuildCurrentBin
- C:Program FilesMicrosoft Visual Studio2022 Enterprise MSBuildCurrentBin
- C:Program FilesMicrosoft Visual Studio2022 Сообщество MSBuildCurrentBin
Терминология [ править ]
Этот раздел может быть запутанным или неясным для читателей . В частности, непонятно, о чем идет речь в этом разделе и какова природа, скажем, «Цели» или «Задачи». Примеры помогут. Помогите разобраться с разделом . На странице обсуждения может быть обсуждение этого вопроса . ( апрель 2013 г. ) ( узнайте, как и когда удалять это шаблонное сообщение )
Смотрите также [ править ]
- Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки [ править ]
- ^»Последний выпуск» . Майкрософт/msbuild. Гитхаб . Майкрософт . Проверено 20 августа 2022 г. .
- ^«Microsoft/msbuild: Microsoft Build Engine (MSBuild) — это платформа сборки для .NET и Visual Studio» . Гитхаб . Майкрософт . Проверено 23 июля 2019 г. .
- ^ Хашими, Сайед Ибрагим; Варфоломей, Уильям (2009). Внутри Microsoft Build Engine: использование MSBuild и Team Foundation Build . Майкрософт Пресс. п. 406. ISBN
- 978-0-7356-2628-7 .
- ^ аб»MSBuild» . MSBuild. Документы Майкрософт . Проверено 23 июля 2019 г. .
- ↑ Ландер, Рич (18 марта 2015 г.). «MSBuild Engine теперь доступен на GitHub с открытым исходным кодом» . Блог .NET. Блоги MSDN . Майкрософт . Проверено 23 июля 2019 г. .
- ^ ab«Что нового в 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 Company. п. 426. ISBN978-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 Microsofts Build-Management-Technik MSBuild» [Введение в технологию управления сборкой Microsoft, MSBuild]. Heise Developer (на немецком языке). Хайнц Хайзе . Проверено 11 апреля 2013 г.
- Джонс, Майк; Уоррен, Женевьева; Блом, Майк; Робертсон, Колин; Хогенсон, Гордон; Кай, Сайсанг (4 ноября 2016 г.). «Целевая платформа MSBuild и целевая платформа» . MSBuild. Документы Майкрософт . Проверено 19 февраля 2018 г. .
Внешние ссылки [ править ]
- Официальный сайт
Источник: wikipredia.net