MSBuild
Microsoft Build Engine - это платформа для построения приложений.Этот обработчик, который также как MSBuild, предоставляет схему XML для файла проекта, элементов управления как процессы построения и платформы построения программного обеспечения.Visual Studio использует MSBuild, но не зависит от Visual Studio. Путем вызова msbuild.exe с проектом или файле решения можно оркеструйте и построение продукты в средах, где Visual Studio не задано.
Visual Studio использует MSBuild для загрузки и построение управляемых проектов.Файлы проекта в Visual Studio (с расширением VBPROJ, vcxproj и других) содержат код XML MSBuild, который выполняется при построении проекта с помощью интегрированной среды разработки.Проекты Visual Studio импортируют все необходимые задачи разработки и параметров процесса построения обычно, но можно расширять или изменяют из Visual Studio или с помощью редактора XML.
В следующих примерах показаны после построения можно выполнять с помощью командной строки MSBuild вместо интегрированной среды разработки Visual Studio.
Visual Studio не задано.
Необходимо использовать версию 64 разрядная MSBuild.Эта версия MSBuild обычно ненужна, но она позволяет MSBuild для получения больше памяти.
Требуется выполнить построение в нескольких процессах.Однако можно использовать интегрированная среда разработки добиться того же результата для проектов в C и C-++, начиная с Visual Studio 2012, C-#.
Необходимо изменить система построения.Например, может потребоваться включить следующие действия:
Предварительно обработка файлы перед их достигают компилятора.
Скопировать выходные данные построения в другое место.
Создайте сжатые файлы из выходных данных построения.
Выполните код пост-обработки.Например, может потребоваться в штемпелю сборки с версией.
Можно написать код в интегрированной среде разработки Visual Studio, но выполняет построения с помощью MSBuild.В качестве альтернативы можно использовать другой код построения в интегрированной среде разработки на компьютере разработчика и использовать командную строку MSBuild для построения код, который интегрирован из нескольких разработчиков.
Примечание |
---|
Можно использовать Team Foundation автоматически компилировать, тестирования и развертывания приложения.Система построения может автоматически запускать построения при разработчики вернут код (например, как часть стратегии непрерывной интеграции) или по расписанию (например, построение тест проверки ночного построения).Team Foundation компилировать код с помощью MSBuild.Дополнительные сведения см. в разделе Построение приложения. |
В этом разделе представлен обзор MSBuild.Вводное руководство см. в разделе Пошаговое руководство. Использование MSBuild.
Содержание раздела
Использование MSBuild в командной строке
Файл проекта
Свойства
Items
Задачи
целевые объекты
Журналы построения
Использование MSBuild в Visual Studio
Настройка для различных версий
Использование MSBuild в командной строке
Чтобы запустить MSBuild из командной строки, передайте файл проекта в MSBuild.exe с использованием соответствующих параметров командной строки.Параметры командной строки позволяют задавать свойства, выполнять определенные целевые объекты и задавать другие параметры, управляющие процессом построения.Например, используя следующий синтаксис командной строки, можно создать файл MyProj.proj со свойством Configuration, для которого задается значение Debug.
MSBuild.exe MyProj.proj /property:Configuration=Debug
Дополнительные сведения о параметрах командной строки MSBuild см. в разделе Справочник по командной строке MSBuild.
Примечание по безопасности |
---|
Перед загрузкой проекта определите, можно ли доверять коду. |
Файл проекта
MSBuild использует основанный на XML формат файла проекта, и расширяемый.Формат файла проекта MSBuildпозволяет разработчикам описывать создаваемые элементы, а также способы их построения для разных операционных систем и конфигураций.Кроме того, формат файла проекта позволяет разработчикам создавать многократно используемые правила построения, которые можно разложить на отдельные файлы, чтобы построения могли выполняться единообразно в различных проектах в продукте.
В следующих разделах описаны некоторые из базовых элементов формата файла проекта MSBuild. Для обучения созданию файла проекта см. в разделе Пошаговое руководство. Создание файла проекта MSBuild с нуля.
Свойства
Свойства представляют пары ключ-значение, с помощью которых выполняется настройка построения.Для объявления свойств создается элемент с именем свойства, который является дочерним по отношению к элементу PropertyGroup.Например, следующий код создает свойством BuildDir, которое имеет значение Build.
<PropertyGroup>
<BuildDir>Build</BuildDir>
</PropertyGroup>
Можно определить свойство условно, установив атрибут Condition в элементе.Содержимое условных элементов игнорируется, пока значение условия не станет true.В следующем примере определяется элемент Configuration, если он еще не был задан.
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
Для ссылки на свойства в файле проекта используется синтаксис $(PropertyName).Например, можно связать свойства в предыдущих примерах с помощью $(BuildDir) и $(Configuration).
Дополнительные сведения о свойствах см. в разделе Свойства MSBuild.
Items
Элементы - входные данные для системы построения, как правило, представляющие файлы.Элементы группируются в типы на основе определяемых пользователем имен элементов.Эти типы элементов можно использовать в качестве параметров для задач, в которых с помощью отдельных элементов выполняются этапы процесса построения.
Для объявления элементов в файле проекта создается элемент с именем типа элементов, являющийся дочерним по отношению к элементу ItemGroup.Например, с помощью приведенного ниже кода создается тип элементов с именем Compile, в который входят два файла.
<ItemGroup>
<Compile Include = "file1.cs"/>
<Compile Include = "file2.cs"/>
</ItemGroup>
Для ссылки на типы элементов в файле проекта используется синтаксис @(ItemType).Например, ссылка на тип элементов в этом примере выглядела бы следующим образом: @(Compile).
В MSBuild, имена элементов и атрибутов учитывается регистр.Однако для имен свойств, элементов и метаданных нет.В следующем примере создается тип элементов Compile, comPile или любой другой вариант обращения, содержит тип элемента значение "one.cs; two.cs".
<ItemGroup>
<Compile Include="one.cs" />
<comPile Include="two.cs" />
</ItemGroup>
При объявлении элементов можно использовать подстановочные знаки; элементы могут содержать дополнительные метаданные для расширенных сценариев построения.Дополнительные сведения об элементах см. в разделе Элементы MSBuild.
Задачи
Задачи — это блоки исполняемого кода, с помощью которых в проектах MSBuild выполняются операции построения.Например, в задаче может выполняться компиляция входных файлов или запускаться внешняя программа.Созданные задачи могут использоваться совместно и многократно разными разработчиками в различных проектах.
Логика выполнения задачи записана в управляемом коде и сопоставлена с MSBuild с помощью элемента UsingTask.Для создания собственной задачи можно разработать управляемый тип, реализующий интерфейс ITask.Дополнительные сведения о способах создания задач см. в разделе Написание задач.
MSBuild включает общие задачи, которые можно изменять в соответствии со своими предпочтениями.Примеры Копия, копирование файлов, MakeDir, который создает каталоги и Csc, который будет компилироваться файлы исходного кода Visual C#.Список доступных задач и информацию об их использовании см. в разделе Справочные сведения о задачах MSBuild.
Задача выполняется в файле проекта MSBuild путем создания элемента с именем задачи в виде дочернего элемента по отношению к элементу Target.Задачи, как правило, принимают параметры, которые передаются как атрибуты элемента.В качестве параметров можно использовать свойства и элементы MSBuild.Например, с помощью следующего кода вызывается задача MakeDir и ей передается значение свойства BuildDir, объявленного в предыдущем примере.
<Target Name="MakeBuildDirectory">
<MakeDir Directories="$(BuildDir)" />
</Target>
Дополнительные сведения о задачах см. в разделе Задачи MSBuild.
целевые объекты
Целевые объекты позволяют группировать задачи в определенном порядке и использовать разделы файла проекта в качестве точек входа в процесс построения.Целевые объекты часто группированы в логические разделы, чтобы улучшить читаемость и разрешения для расширения.Благодаря разбиению действий построения на множество целевых объектов можно вызывать один фрагмент процесса построения из других целевых объектов, не создавая при этом копии соответствующего раздела кода в каждом целевом объекте.Например, если несколько точек входа в процесс построения требуют ссылки, можно создать целевой объект, создающий ссылки и выполните этот целевой объект из каждой точки входа, где он требуется.
целевые объекты указываются в файле проекта с помощью элемента Target.Например, с помощью следующего кода создается целевой объект с именем Compile, который затем вызывает задачу Csc со списком элементов, объявленным в предыдущем примере.
<Target Name="Compile">
<Csc Sources="@(Compile)" />
</Target>
В более сложных сценариях, целевые объекты, которые можно использовать для описания связей между одного другие и выполнить анализ зависимости, чтобы все разделы процесса построения можно пропустить, если этот целевой объект последний.Дополнительную информацию о целях см. в разделе Цели MSBuild.
Журналы построения
Можно ошибки построения, предупреждения и сообщения журнала на консоль или другого устройства вывода.Дополнительные сведения см. в разделах Получение журналов построения с помощью MSBuild и Ведение журнала в MSBuild.
Использование MSBuild в Visual Studio
В Visual Studio используется формат файла проекта MSBuild для хранения данных построения об управляемых объектах.Параметры проекта, добавленные или измененные с помощью интерфейса Visual Studio, отражаются в. файл *proj, который создается для каждого проекта.Для построения управляемых проектов в Visual Studio используется размещенный экземпляр MSBuild.Это означает, что управляемый проект может быть встроенным Visual Studio или из командной строки (даже если Visual Studio не задано) и результаты будут идентичны.
Руководство по использованию MSBuild в Visual Studio см. в разделе Пошаговое руководство. Использование MSBuild.
Настройка для различных версий
С помощью Visual Studio можно компилировать приложение для его запуска на любой из нескольких версий платформы .NET Framework.Например, можно компилировать приложение для запуска на платформе .NET Framework 2.0 на 32 разрядной платформе, а также компилировать то же приложение для запуска на платформе .NET Framework 4,5 на 64 разрядной платформе.Возможность компиляции для нескольких платформ называется настройкой для различных версий.
Ниже приведены несколько преимуществ настройки для различных версий:
Можно разрабатывать приложения, которые предназначены для более ранних версий платформы .NET Framework, например версий 2.0, 3.0 и 3.5.
Можно требуемой версии .NET Framework, отличного от платформы .NET Framework, например Silverlight.
Можно ориентироваться на профиль платформы, который представляет собой предопределенное подмножество целевой платформы.
Если освобождается пакет обновления для текущей версии платформы .NET Framework, можно его целевой объект.
Настройка для различных версий гарантирует, что приложение использует только функциональные возможности, доступные в требуемую версию .NET Framework и платформы.
Для получения дополнительной информации см. MSBuild: обзор настройки для различных версий.
Связанные разделы
Заголовок |
Описание |
---|---|
Пошаговое руководство. Создание файла проекта MSBuild с нуля |
Содержит описание способов пошагового создания основного файла проекта путем использования только текстового редактора. |
Представляет стандартные блоки MSBuild и способы создания, управления и отладки проектов MSBuild без закрыть интегрированная среда разработки Visual Studio. |
|
Содержит информацию о четырех стандартных блоках MSBuild: свойствах, элементах, целевых объектах и задачах. |
|
Содержит описание общих понятий, относящихся к формату файлов MSBuild, и способов взаимодействия фрагментов. |
|
Содержит вводную информацию о свойствах и коллекциях свойств.Свойства представляют собой пары ключ-значение, с помощью которых выполняется настройка сборок. |
|
Содержит объяснение группировки задач в определенном порядке и вызова разделов процесса построения из командной строки. |
|
Описывает процесс создания блока исполняемого кода, с помощью которого MSBuild выполняет атомарные операции построения. |
|
Рассматривает использование атрибута Condition в элементе MSBuild. |
|
Представляет пакетную обработку, выполнение преобразования, настройки для различных версий и другие дополнительные методы. |
|
Описание регистрацию событий построения, сообщения и ошибки в журнал. |
|
Содержит список ресурсов сообщества и службы поддержки с дополнительной информацией о MSBuild. |
Ссылки
Справочные сведения о MSBuild
Содержит ссылки на разделы, содержащие справочную информацию.Глоссарий MSBuild
Содержит определения общих терминов MSBuild.