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 с нуля.

Dd393574.collapse_all(ru-ru,VS.110).gifСвойства

Свойства представляют пары ключ-значение, с помощью которых выполняется настройка построения.Для объявления свойств создается элемент с именем свойства, который является дочерним по отношению к элементу PropertyGroup.Например, следующий код создает свойством BuildDir, которое имеет значение Build.

<PropertyGroup>
    <BuildDir>Build</BuildDir>
</PropertyGroup>

Можно определить свойство условно, установив атрибут Condition в элементе.Содержимое условных элементов игнорируется, пока значение условия не станет true.В следующем примере определяется элемент Configuration, если он еще не был задан.

<Configuration  Condition=" '$(Configuration)' == '' ">Debug</Configuration>

Для ссылки на свойства в файле проекта используется синтаксис $(PropertyName).Например, можно связать свойства в предыдущих примерах с помощью $(BuildDir) и $(Configuration).

Дополнительные сведения о свойствах см. в разделе Свойства MSBuild.

Dd393574.collapse_all(ru-ru,VS.110).gifItems

Элементы - входные данные для системы построения, как правило, представляющие файлы.Элементы группируются в типы на основе определяемых пользователем имен элементов.Эти типы элементов можно использовать в качестве параметров для задач, в которых с помощью отдельных элементов выполняются этапы процесса построения.

Для объявления элементов в файле проекта создается элемент с именем типа элементов, являющийся дочерним по отношению к элементу 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.

Dd393574.collapse_all(ru-ru,VS.110).gifЗадачи

Задачи — это блоки исполняемого кода, с помощью которых в проектах MSBuild выполняются операции построения.Например, в задаче может выполняться компиляция входных файлов или запускаться внешняя программа.Созданные задачи могут использоваться совместно и многократно разными разработчиками в различных проектах.

Логика выполнения задачи записана в управляемом коде и сопоставлена с MSBuild с помощью элемента UsingTask.Для создания собственной задачи можно разработать управляемый тип, реализующий интерфейс ITask.Дополнительные сведения о способах создания задач см. в разделе Написание задач.

MSBuild включает общие задачи, которые можно изменять в соответствии со своими предпочтениями.Примеры Копия, копирование файлов, MakeDir, который создает каталоги и Csc, который будет компилироваться файлы исходного кода Visual C#.Список доступных задач и информацию об их использовании см. в разделе Справочные сведения о задачах MSBuild.

Задача выполняется в файле проекта MSBuild путем создания элемента с именем задачи в виде дочернего элемента по отношению к элементу Target.Задачи, как правило, принимают параметры, которые передаются как атрибуты элемента.В качестве параметров можно использовать свойства и элементы MSBuild.Например, с помощью следующего кода вызывается задача MakeDir и ей передается значение свойства BuildDir, объявленного в предыдущем примере.

<Target Name="MakeBuildDirectory">
    <MakeDir  Directories="$(BuildDir)" />
</Target>

Дополнительные сведения о задачах см. в разделе Задачи MSBuild.

Dd393574.collapse_all(ru-ru,VS.110).gifцелевые объекты

Целевые объекты позволяют группировать задачи в определенном порядке и использовать разделы файла проекта в качестве точек входа в процесс построения.Целевые объекты часто группированы в логические разделы, чтобы улучшить читаемость и разрешения для расширения.Благодаря разбиению действий построения на множество целевых объектов можно вызывать один фрагмент процесса построения из других целевых объектов, не создавая при этом копии соответствующего раздела кода в каждом целевом объекте.Например, если несколько точек входа в процесс построения требуют ссылки, можно создать целевой объект, создающий ссылки и выполните этот целевой объект из каждой точки входа, где он требуется.

целевые объекты указываются в файле проекта с помощью элемента 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 и способы создания, управления и отладки проектов MSBuild без закрыть интегрированная среда разработки Visual Studio.

Основные возможности MSBuild

Содержит информацию о четырех стандартных блоках MSBuild: свойствах, элементах, целевых объектах и задачах.

Элементы MSBuild

Содержит описание общих понятий, относящихся к формату файлов MSBuild, и способов взаимодействия фрагментов.

Свойства MSBuild

Содержит вводную информацию о свойствах и коллекциях свойств.Свойства представляют собой пары ключ-значение, с помощью которых выполняется настройка сборок.

Цели MSBuild

Содержит объяснение группировки задач в определенном порядке и вызова разделов процесса построения из командной строки.

Задачи MSBuild

Описывает процесс создания блока исполняемого кода, с помощью которого MSBuild выполняет атомарные операции построения.

Условия MSBuild

Рассматривает использование атрибута Condition в элементе MSBuild.

Дополнительные возможности MSBuild

Представляет пакетную обработку, выполнение преобразования, настройки для различных версий и другие дополнительные методы.

Ведение журнала в MSBuild

Описание регистрацию событий построения, сообщения и ошибки в журнал.

Дополнительные ресурсы MSBuild

Содержит список ресурсов сообщества и службы поддержки с дополнительной информацией о MSBuild.

Ссылки