Sdílet prostřednictvím


Postupy: Vytváření konfigurací sestavení řešení a projektu

Doplňky Visual Studio jsou ve verzi aplikace Visual Studio 2013 zastaralé.Měli byste upgradovat doplňky na rozšíření VSPackage.Další informace o upgradu viz Nejčastější dotazy: Převádění doplňků na rozšíření VSPackage.

Model automatizace Visual Studio nabízí objekty, které umožňují řídit konfigurace řešení a sestavení projektu.Konfigurace sestavení řešení určuje, jak jsou některé projekty v řešení sestaveny a (je-li to povoleno) zavedeny.Konfigurace sestavení projektu, která jsou uvedena v dialogovém okně Stránky vlastností projektu, ukazují seznam všech dostupných typů sestavení projektu, jako Ladění nebo Verze, a dostupné platformy, jako je například rozhraní .NET nebo Win32.Pro každou kombinaci sestavení a platformy existuje konfigurace projektu – sada definovaných vlastností a nastavení projektu.

Objekty konfigurace projektu projektu jsou:

Název objektu

Description

Objekt jazyka SolutionBuild2

Používá se k sestavení, vyčištění a implementaci konfigurace aktivního řešení.

Objekt jazyka SolutionConfiguration2

Představuje seznam projektů a jejich konfigurací, které mají být vytvořeny.

Kolekce SolutionConfigurations

Obsahuje všechny definované objekty SolutionConfiguration.

Objekt jazyka SolutionContext

Představuje konfiguraci projektu v objektu SolutionConfiguration.

Kolekce SolutionContexts

Obsahuje všechny objekty SolutionContext v objektu SolutionConfiguration.

Objekt jazyka BuildDependency

Představuje projekt, který musí být vytvořen před tím, než může být vytvořeny vlastnící projekt.

Kolekce BuildDependencies

Obsahuje všechny projekty, které musí být vytvořeny před tím, než může být vytvořen vlastnící projekt.

Objekty konfigurace sestavení projektu jsou:

Název objektu

Description

Objekt jazyka ConfigurationManager

Představuje konfiguraci sestavení a platformy.

Objekt jazyka Configuration

Představuje konfiguraci nebo sadu nastavení sestavení v rámci zadané platformy.

Kolekce Configurations

Obsahuje všechny objekty Configuration.

Objekt jazyka OutputGroup

Obsahuje soubory sestavené projektem.

Kolekce OutputGroups

Obsahuje všechny objekty OutputGroup.

Pomocí těchto objektů můžete:

  • Vytvoření, přidání projektů, aktivace a odstranění konfigurací řešení.

  • Sestavit, spustit nebo nasadit všechny projekty v konfiguraci řešení.

  • Získejte informace o objektech v konfiguraci projektu nebo řešení.

  • Přidat, odebrat nebo získat informace o závislostech sestavení projektu.

[!POZNÁMKA]

Dialogová okna a příkazy nabídek, které vidíte, se mohou lišit od těch popsaných v nápovědě v závislosti na aktivních nastaveních nebo edici.Tyto postupy byly vyvinuty s aktivním Obecným vývojovým nastavením.Chcete-li změnit nastavení, zvolte NastaveníImportu a Exportu v nabídce Nástroje.Další informace naleznete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Příklad

Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    SConfig(_applicationObject)
End Sub
Sub SConfig(ByVal dte As DTE2)
    Dim SB As SolutionBuild2 =  _
    CType(_applicationObject.Solution.SolutionBuild, _
    SolutionBuild2)
    Dim SolCtx As SolutionContext
    Dim Proj As Project
    Dim CM As ConfigurationManager
    Dim Cfgs As SolutionConfigurations
    Dim Cfg As SolutionConfiguration2
    Dim msg As String

    ' Get a reference to the solution configurations 
    ' solution context of the first project.
    SolCtx = SB.SolutionConfigurations.Item(1).SolutionContexts.Item(1)
   CM = _applicationObject.Solution.Projects. _
    Item(1).ConfigurationManager
    Proj = _applicationObject.Solution.Projects.Item(1)
    Cfgs = _applicationObject.Solution.SolutionBuild. _
    SolutionConfigurations
    Cfg = CType(Cfgs.Item(1), SolutionConfiguration2)

    ' List the current solution build info.
    msg = "BuildState = "
    Select Case SB.BuildState
        Case vsBuildState.vsBuildStateNotStarted
            msg = msg & "Build has not yet started." & vbCr
        Case vsBuildState.vsBuildStateInProgress
            msg = msg & "Build is in progress." & vbCr
        Case vsBuildState.vsBuildStateDone
            msg = msg & "Build has completed." & vbCr
    End Select
    msg = msg & "Configuration Name = " & SolCtx.ConfigurationName _
    & vbCr
    msg = msg & "Platform Name = " & SolCtx.PlatformName & vbCr
    msg = msg & "Project Name = " & SolCtx.ProjectName & vbCr
    MsgBox(msg)

    ' List the current solution configurations.
    msg = ("Configuration names are:" & vbCr)
    For Each Cfg In Cfgs
        msg = msg & Cfg.Name & vbCr
    Next
    MsgBox(msg)
   ' Add a new solution configuration.
   Cfgs.Add("ANewConfiguration", "Debug", False)
   MsgBox(Cfgs.Item(1).Name)
   ' Create a new project build configuration based on the Debug 
   ' configuration.
   Proj.ConfigurationManager.AddConfigurationRow("MyNewConfig", _
    "Debug", True)
   ' Build the solution configuration.
   sb.SolutionConfigurations.Item("MyConfig").Activate()
   sb.Build()
End Sub
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);
    }
}

Probíhá kompilace kódu

Chcete-li tento kód zkompilovat, vytvořte nový projekt doplňku Visual Studio a nahraďte kód ve třídě Connect.cs nebo Connect.vb kódem v příkladu.Před spuštěním doplňku otevřete projekt v IDE Visual Studio.Další informace o spuštění doplňku naleznete v části Postupy: Řízení doplňků pomocí Správce doplňků.

Viz také

Úkoly

Postupy: Přidávání a zpracování příkazů

Postupy: Vytvoření doplňku

Návod: Vytvoření průvodce

Koncepty

Řešení a projekty

Graf modelu objektů automatizace

Další zdroje

Sestavování aplikací v sadě Visual Studio

Vytváření a řízení oken prostředí

Vytváření doplňků a průvodců

Referenční dokumentace automatizace a rozšíření