Exportar (0) Imprimir
Expandir todo

Cómo: Crear configuraciones de generación de soluciones y proyectos

El modelo de automatización de Visual Studio proporciona objetos que permiten controlar las configuraciones de generación de soluciones y proyectos. En una configuración de generación de soluciones se especifica el modo en que se van a generar y, si se activa, implementar determinados proyectos de una solución. Las configuraciones de generación de proyectos, que aparecen en el cuadro de diálogo Páginas de propiedades del proyecto, indican todos los tipos de generaciones de proyecto disponibles, como Debug o Release, y las plataformas disponibles, como .Net o Win32. Por cada combinación de generación y plataforma, existe una configuración de proyecto; es decir, un conjunto de valores y propiedades de proyecto definidos.

Los objetos de configuración de generación de soluciones son:

Nombre de objeto Descripción

Objeto SolutionBuild2

Se utiliza para generar, limpiar e implementar la configuración de solución activa.

Objeto SolutionConfiguration2

Representa una lista de proyectos que se deben generar y sus configuraciones.

Colección SolutionConfigurations

Contiene todos los objetos SolutionConfiguration definidos.

Objeto SolutionContext

Representa la configuración de un proyecto en un objeto SolutionConfiguration.

Colección SolutionContexts

Contiene todos los objetos SolutionContext en un objeto SolutionConfiguration.

Objeto BuildDependency

Representa un proyecto que debe generarse antes de poder generar el proyecto propietario.

Colección BuildDependencies

Contiene todos los proyectos que se deben generar antes de poder generar el proyecto propietario.

Los objetos de configuración de generación de proyectos son:

Nombre de objeto Descripción

Objeto ConfigurationManager

Representa la configuración y las plataformas de generación.

Objeto Configuration

Representa una configuración, o conjunto de configuraciones de generación, para una plataforma específica.

Colección Configurations

Contiene todos los objetos Configuration.

Objeto OutputGroup

Contiene los archivos generados por el proyecto.

Colección OutputGroups

Contiene todos los objetos OutputGroup.

Mediante estos objetos se puede:

  • Crear, agregar proyectos, activar y suprimir configuraciones de solución.

  • Generar, ejecutar e implementar cualquier proyecto de una configuración de solución.

  • Obtener información acerca de los objetos de un proyecto o una configuración de solución.

  • Agregar, eliminar u obtener información acerca de las dependencias de generación de proyectos.

NoteNota

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Estos procedimientos se desarrollaron con la Configuración general de desarrollo activa. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Ejemplo

public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    SConfig(_applicationObject);
}
public void SConfig(DTE2 dte)
{
    try
    {
        SolutionBuild2 SB =
 (SolutionBuild2)_applicationObject.Solution.SolutionBuild;
        SolutionContext SolCtx;
        Project Proj;
        ConfigurationManager CM;
        SolutionConfigurations Cfgs;
        SolutionConfiguration2 Cfg;
        String msg;
        // Get a reference to the solution configurations
        // solution context of the first project.
        SolCtx = SB.SolutionConfigurations.Item(1).
SolutionContexts.Item(1);
        CM = dte.Solution.Projects.Item(1).ConfigurationManager;
        Proj = _applicationObject.Solution.Projects.Item(1);
        Cfgs = _applicationObject.Solution.
SolutionBuild.SolutionConfigurations;
        Cfg = (SolutionConfiguration2)Cfgs.Item(1);
        // List the current solution build info.
        msg = "BuildState = ";
        switch (SB.BuildState)
        {
            case vsBuildState.vsBuildStateNotStarted:
                msg = (msg + "Build has not yet started." + "\n");
            break;
            case vsBuildState.vsBuildStateInProgress:
                msg = (msg + "Build is in progress." + "\n");
            break;
            case vsBuildState.vsBuildStateDone:
                msg = (msg + "Build has completed." + "\n");
            break;
        }
        msg = msg + "Configuration Name = " + 
SolCtx.ConfigurationName + "\n";
        msg = msg + "Platform Name = " + SolCtx.PlatformName + "\n";
        msg = msg + "Project Name = " + SolCtx.ProjectName + "\n";
        MessageBox.Show(msg);
        // List the current solution configurations.
        msg = "Configuration names are:" + "\n";
        foreach(SolutionConfiguration2 tempConfigs in Cfgs)
        {
            msg = msg + tempConfigs.Name + "\n";
        }
        MessageBox.Show(msg);
        // Add a new solution configuration.
        Cfgs.Add("ANewConfiguration", "Debug", false);
        MessageBox.Show
("The name of the first solution configuration item is: " 
+ Cfgs.Item(1).Name);
        // Create a new project build configuration based on the 
        // Debug configuration.
        Proj.ConfigurationManager.AddConfigurationRow
("MyNewConfig", "Debug", true);
        // Build the debug solution configuration.
        MessageBox.Show("Build the solution in the debug mode...");
        SB.SolutionConfigurations.Item("Debug").Activate();
        SB.Build(true);
    }
    catch (Exception ex)
    {
        MessageBox.Show("Exception: " + ex);
    }
}

Compilar el código

Para compilar este código, cree un nuevo proyecto de complemento de Visual Studio y reemplace el código de la clase Connect.cs o Connect.vb por el código del ejemplo. Antes de ejecutar el complemento, abra un proyecto en el IDE de Visual Studio. Para obtener información sobre cómo ejecutar un complemento, vea Cómo: Controlar complementos con el Administrador de complementos.

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft