Поделиться через


Использование MSBuild

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

Общие рекомендации ПО MSBuild

Файлы проекта MSBuild, например Visual C# .csproj и Visual Basic Vbproj, содержат данные, используемые во время сборки, но также могут содержать данные, используемые во время разработки. Данные во время сборки хранятся с помощью примитивов MSBuild, включая элемент Item (MSBuild) и элемент property (MSBuild). Данные во время разработки, относящиеся к типу проекта и любым связанным подтипам проекта, хранятся в xml-файле свободной формы, зарезервированном для него.

MSBuild не поддерживает собственные объекты конфигурации, но предоставляет условные атрибуты для указания данных, относящихся к конфигурации. Например:

<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>

Дополнительные сведения об условных атрибутах см. в разделе "Условные конструкции".

Расширение MSBuild для типа проекта

Интерфейсы и API MSBuild могут изменяться в будущих версиях Visual Studio. Поэтому рекомендуется использовать классы управляемой платформы пакетов (MPF), так как они обеспечивают защиту от изменений.

Платформа управляемых пакетов для проектов (MPFProj) предоставляет вспомогательные классы для создания и управления новой системой проектов. Инструкции по исходному коду и компиляции можно найти в MPF для проектов — Visual Studio 2013.

Классы MPF для конкретного проекта приведены следующим образом:

Класс Внедрение
Microsoft.VisualStudio.Package.ProjectNode IVsProject3

IVsCfgProvider2

IPersistFileFormat

IVsSolutionEvents
Microsoft.VisualStudio.Package.ProjectFactory IVsProjectFactory
Microsoft.VisualStudio.Package.HierarchyNode IVsHierarchy
Microsoft.VisualStudio.Package.ProjectConfig IVsCfg

IVsProjectCfg

IVsBuildableProjectCfg

IVsDebuggableProjectCfg
Microsoft.VisualStudio.Package.SettingsPage IPropertyPageSite

Microsoft.VisualStudio.Package.ProjectElement класс — это оболочка для элементов MSBuild.

Генераторы отдельных файлов и задачи MSBuild

Генераторы отдельных файлов доступны только во время разработки, но задачи MSBuild можно использовать во время разработки и во время сборки. Для максимальной гибкости используйте задачи MSBuild для преобразования и создания кода. Дополнительные сведения см. в разделе "Пользовательские инструменты".