Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O MSBuild fornece um formato XML bem definido e extensível para criar arquivos de projeto que descrevem completamente os itens de projeto a serem criados, tarefas de compilação e configurações de compilação.
Considerações gerais sobre o MSBuild
Arquivos de projeto MSBuild, por exemplo, Visual C# .csproj e Visual Basic .vbproj, contêm dados que são usados em tempo de compilação, mas também podem conter dados que são usados em tempo de design. Os dados de tempo de compilação são armazenados usando os primitivos do MSBuild, incluindo o Elemento de Item (MSBuild) e o Elemento de Propriedade (MSBuild). Os dados de tempo de design, que são específicos para o tipo de projeto e quaisquer subtipos de projeto relacionados, são armazenados num XML de formato livre dedicado a essa finalidade.
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 Construções 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 (managed package framework) porque elas fornecem proteção contra alterações.
O Managed Package Framework for Projects (MPFProj) fornece classes auxiliares para criar e gerenciar um novo sistema de projeto. Você pode encontrar o código-fonte e as instruções de compilação em 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 class é um encapsulamento para itens do MSBuild.
Geradores de arquivo único vs. tarefas do MSBuild
Os geradores de arquivo único são acessíveis somente em tempo de design, mas as tarefas do MSBuild podem ser usadas em tempo de design e de compilação. Para máxima flexibilidade, portanto, use tarefas do MSBuild para transformar e gerar código. Para obter mais informações, consulte Ferramentas personalizadas.