Uso de MSBuildUsing MSBuild

MSBuild proporciona un formato XML bien definido, extensible para crear archivos de proyecto que se describen los elementos de proyecto para generarse, tareas de compilación y configuraciones de compilación totalmente.MSBuild supplies a well-defined, extensible XML format for creating project files that fully describe project items to be built, build tasks, and build configurations.

Consideraciones de general MSBuildGeneral MSBuild Considerations

Los archivos de proyecto de MSBuild, por ejemplo, Visual C#Visual C# .csproj y Visual BasicVisual Basic archivos .vbproj, contienen datos que se utilizan en tiempo de compilación, pero también pueden contener datos que se utilizan en tiempo de diseño.MSBuild project files, for example, Visual C#Visual C# .csproj and Visual BasicVisual Basic .vbproj files, contain data that is used at build time, but also can contain data that is used at design time. Datos de tiempo de compilación se almacenan utilizando primitivas de MSBuild, incluidos los elemento Item (MSBuild) y elemento Property (MSBuild).Build-time data is stored using MSBuild primitives, including Item Element (MSBuild) and Property Element (MSBuild). Datos de tiempo de diseño, que son específicos para el tipo de proyecto y los subtipos de proyecto relacionado, se almacenan en XML de forma libre reservado para él.Design-time data, which is data specific to the project type and any related project subtypes, is stored in free-form XML reserved for it.

MSBuild no tiene compatibilidad nativa para los objetos de configuración, pero proporcionar atributos condicionales para especificar datos específicos de la configuración.MSBuild does not have native support for configuration objects, but does provide conditional attributes for specifying configuration-specific data. Por ejemplo:For example:

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

Para obtener más información sobre atributos condicionales, consulte construcciones condicional.For more information on conditional attributes, see Conditional Constructs.

Ampliación de MSBuild para el tipo de proyectoExtending MSBuild for Your Project Type

Interfaces de MSBuild y las API están sujetos a cambios en versiones futuras de Visual StudioVisual Studio.MSBuild interfaces and APIs are subject to change in future versions of Visual StudioVisual Studio. Por lo tanto, es recomendable utilizar las clases de managed package framework (MPF) ya que proporcionan protección frente a los cambios.Therefore, it is prudent to use the managed package framework (MPF) classes because they provide shielding from changes.

Managed Package Framework para proyectos (MPFProj) proporciona clases auxiliares para crear y administrar el nuevo sistema de proyectos.The Managed Package Framework for Projects (MPFProj) provides helper classes for creating and managing new project system. Puede encontrar el origen de las instrucciones de código y la compilación en MPF para proyectos - Visual Studio 2013.You can find the source code and compilation instructions at MPF for Projects - Visual Studio 2013.

Las clases MPF específica del proyecto son los siguientes:The project-specific MPF classes are as follows:

ClaseClass ImplementaciónImplementation
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.ProjectElementclase es un contenedor de elementos de MSBuild.Microsoft.VisualStudio.Package.ProjectElement class is a wrapper for MSBuild items.

Frente a generadores de un solo archivo. Tareas de MSBuildSingle File Generators vs. MSBuild Tasks

Archivo único generadores son accesibles en tiempo de diseño solo, pero se pueden usar tareas de MSBuild en tiempo de diseño y tiempo de compilación.Single file generators are accessible at design-time only, but MSBuild tasks can be used at design-time and build-time. Para obtener la máxima flexibilidad, por lo tanto, utilizar tareas de MSBuild para transformar y generar el código.For maximum flexibility, therefore, use MSBuild tasks to transform and generate code. Para obtener más información, consulte Custom Tools.For more information, see Custom Tools.

Vea tambiénSee Also

Referencia de MSBuild MSBuild Reference
MSBuild MSBuild
Herramientas personalizadasCustom Tools