Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Procedura: creare configurazioni di compilazione di soluzioni e progetti

I componenti aggiuntivi di Visual Studio sono deprecati in Visual Studio 2013. Si consiglia di effettuare l'aggiornamento dei componenti aggiuntivi alle estensioni di VSPackage. Per ulteriori informazioni sull'aggiornamento, consultare Domande frequenti: conversione di componenti aggiuntivi in VSPackage Extensions.

Il modello di automazione di Visual Studio mette a disposizione oggetti che consentono di controllare le configurazioni della build di progetti e soluzioni. In una configurazione della build della soluzione sono specificate le modalità con cui determinati progetti di una soluzione verranno compilati e, se attivati, distribuiti. Le configurazioni della build di progetti sono elencate nella finestra di dialogo Pagine delle proprietà del progetto. In esse sono elencati tutti i tipi disponibili di compilazione di progetti, ad esempio Debug o Release, e tutte le piattaforme disponibili, ad esempio .Net o Win32. Per ogni combinazione di compilazione e piattaforma esiste una configurazione di progetto, ovvero un insieme di proprietà e impostazioni definite per il progetto.

Gli oggetti della configurazione della build della soluzione sono:

Nome oggetto

Descrizione

Oggetto SolutionBuild2

Utilizzato per compilare, pulire e distribuire la configurazione di soluzione attiva.

Oggetto SolutionConfiguration2

Rappresenta un elenco di progetti, e delle relative configurazioni, che devono essere compilati.

Raccolta SolutionConfigurations

Contiene tutti gli oggetti SolutionConfiguration definiti.

Oggetto SolutionContext

Rappresenta una configurazione di progetto in un oggetto SolutionConfiguration.

Raccolta SolutionContexts

Contiene tutti gli oggetti SolutionContext in un oggetto SolutionConfiguration.

Oggetto BuildDependency

Rappresenta un progetto che deve essere compilato prima che venga compilato il progetto a cui appartiene.

Raccolta BuildDependencies

Contiene tutti i progetti che devono essere compilati prima che venga compilato il progetto a cui appartengono.

Gli oggetti della configurazione della build di progetti sono:

Nome oggetto

Descrizione

Oggetto ConfigurationManager

Rappresenta la configurazione della build e le piattaforme.

Oggetto Configuration

Rappresenta una configurazione, o un insieme di impostazioni di compilazione, all'interno di una specifica piattaforma.

Raccolta Configurations

Contiene tutti gli oggetti Configuration.

Oggetto OutputGroup

Contiene i file compilati dal progetto.

Raccolta OutputGroups

Contiene tutti gli oggetti OutputGroup.

Tramite l'utilizzo di questi oggetti è possibile:

  • Creare configurazioni di soluzione, aggiungervi progetti, attivarle ed eliminarle.

  • Compilare, eseguire o distribuire qualsiasi progetto incluso in una configurazione di soluzione.

  • Ottenere informazioni sugli oggetti contenuti in una configurazione di progetto o di soluzione.

  • Aggiungere, eliminare o ottenere informazioni sulle dipendenze di compilazione del progetto.

Nota Nota

È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Queste procedure sono state sviluppate con le Impostazioni generali per lo sviluppo attive. Per modificare le impostazioni, scegliere Importa ed EsportaImpostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Personalizzazione delle impostazioni di sviluppo in Visual Studio.

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);
    }
}

Per compilare il codice, creare un nuovo progetto di componente aggiuntivo Visual Studio e sostituire il codice della classe Connect.cs o Connect.vb con quello riportato nell'esempio. Prima di eseguire il componente aggiuntivo, aprire un progetto nell'ambiente di sviluppo integrato (IDE) di Visual Studio. Per informazioni sull'esecuzione di un componente aggiuntivo, vedere Procedura: controllare i componenti aggiuntivi tramite Gestione componenti aggiuntivi.

Aggiunte alla community

Mostra: