Compartilhar via


Usando o MSBuild

O MSBuild fornece um formato XML extensível bem definido para criar arquivos de projeto que descrevem totalmente os itens de projeto a serem criados, tarefas de build e configurações de build.

Considerações gerais do MSBuild

Os arquivos de projeto do MSBuild, por exemplo, arquivos .csproj do Visual C# e .vbproj do Visual Basic, contêm dados usados no tempo de build, mas também podem conter dados usados em tempo de design. Os dados em tempo de build são armazenados usando primitivos do MSBuild, incluindo o Elemento Item (MSBuild) e o Elemento de Propriedade (MSBuild). Os dados de tempo de design, que são dados específicos para o tipo de projeto e quaisquer subtipos de projeto relacionados, são armazenados em XML em formato livre reservado para isso.

O MSBuild não tem suporte nativo para objetos de configuração, mas fornece atributos condicionais para especificar dados específicos da configuração. Por exemplo:

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

Para obter mais informações sobre atributos condicionais, consulte Constructos condicionais.

Estendendo o MSBuild para seu tipo de projeto

As INTERFACEs e APIs do MSBuild estão sujeitas a alterações em versões futuras do Visual Studio. Portanto, é prudente usar as classes MPF (estrutura de pacote gerenciado), pois elas fornecem blindagem contra alterações.

O MPFProj (Managed Package Framework for Projects) fornece classes auxiliares para criar e gerenciar um novo sistema de projetos. Você pode encontrar o código-fonte e as instruções de compilação no MPF for Projects – Visual Studio 2013.

As classes MPF específicas do projeto são as seguintes:

Class Implementation
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 a classe é um encapsulador de itens do MSBuild.

Geradores de Arquivos Únicos versus Tarefas do MSBuild

Geradores de arquivos únicos são acessíveis somente em tempo de design, mas as tarefas do MSBuild podem ser usadas em tempo de design e tempo de build. Para obter flexibilidade máxima, portanto, use tarefas do MSBuild para transformar e gerar código. Para obter mais informações, consulte Ferramentas Personalizadas.