Porady: tworzenie konfiguracji rozwiązań i kompilacji projektu

Dodatki Visual Studio zostały zaniechane w programie Visual Studio 2013.Dodatki należy uaktualniać do pakietu rozszerzenia VSPackage.Aby uzyskać więcej informacji na temat uaktualniania, zobacz Często zadawane pytania: konwertowanie dodatków na rozszerzenia pakietu VSPackage.

Visual Studio model automatyzacji obiektów, które umożliwiają kontrolę rozwiązania i konfiguracji projektu kompilacji.Konfiguracja kompilacji rozwiązania określa w jaki sposób niektóre projekty w rozwiązaniu są kompilowane i, jeśli włączone, wdrożone.Konfiguracje kompilacji projektu, które są wymienione w oknie dialogowym Strony właściwości projektu, lista wszystkich dostępnych typów kompilacji projekt, takich jak Debugowanie lub Zwolnienia oraz dostępne platformy, takie jak .NET lub systemu Win32.Dla każdej kombinacji kompilacji i platformy istnieje konfiguracja projektu — zestaw zdefiniowanych właściwości projektu i ustawień.

Obiekty konfiguracji kompilacji projektów rozwiązania to:

Nazwa obiektu

Opis

SolutionBuild2Obiekt

Używane do konstruowania, czyszczenia i wdrażania rozwiązania aktualnie aktywnych konfiguracji.

SolutionConfiguration2Obiekt

Przedstawia listę projektów i ich konfiguracji, które mają być skompilowane.

kolekcja SolutionConfigurations

Zawiera wszystkie zdefiniowane obiekty SolutionConfiguration.

SolutionContextObiekt

Reprezentuje konfigurację projektu w SolutionConfiguration obiekcie.

kolekcja SolutionContexts

Zawiera wszystkie obiekty SolutionContext w obiekcie SolutionConfiguration.

BuildDependencyObiekt

Reprezentuje projekt, który musi być skompilowany zanim projekt właściciela będzie skompilowany.

kolekcja BuildDependencies

Zawiera wszystkie projekty, które muszą być skompilowane zanim projekt właściciela będzie skompilowany.

Obiekty konfiguracji kompilacji projektu to:

Nazwa obiektu

Opis

ConfigurationManagerObiekt

Reprezentuje konfigurację kompilacji i platformy.

ConfigurationObiekt

Reprezentuje konfigurację lub zestaw ustawień kompilacji, w obrębie określonej platformy.

kolekcja Configurations

Zawiera wszystkie obiekty Configuration.

OutputGroupObiekt

Zawiera pliki skompilowane na podstawie projektu.

kolekcja OutputGroups

Zawiera wszystkie obiekty OutputGroup.

Za pomocą tych obiektów można:

  • Utwórz, dodaj projekty, aby uaktywnić i usunąć konfiguracje rozwiązania.

  • Kompiluj, uruchom i wdrażaj każdy projekty w konfiguracji rozwiązania.

  • Uzyskaj informacje o obiektach w obrębie konfiguracji projektu lub rozwiązania.

  • Dodaj, usuń lub pobierz informacje na temat zależności kompilacji projektu.

[!UWAGA]

Polecenia menu i okien dialogowych mogą różnić się od tych opisanych w Pomocy, w zależności od ustawień aktywnych lub wydania.Procedury te zostały opracowane z ogólnych ustawień projektowych active.Aby zmienić swoje ustawienia, wybierz Importuj i eksportujustawienia w menu Narzędzia.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Przykład

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

Kompilowanie kodu

Aby skompilować ten kod, utwórz nowy projekt dodatku Visual Studio projekt dodatku i zastąp kod klasy Połącz.cs lub Połącz.vb kodem w przykładzie.Przed uruchomieniem dodatku, otwórz projekt w Visual Studio IDE.Aby uzyskać informacje na temat uruchamiania dodatku, zobacz Porady: kontrolowanie dodatków za pomocą menedżera dodatków.

Zobacz też

Zadania

Porady: dodawanie i obsługa poleceń

Porady: tworzenie dodatku

Wskazówki: tworzenie kreatora

Koncepcje

Rozwiązania i projekty

Wykres modelu obiektów automatyzacji

Inne zasoby

Kompilowanie aplikacji w Visual Studio

Tworzenie i kontrolowanie okien środowiska

Tworzenie dodatków i kreatorów

Odwołanie do automatyzacji i rozszerzalności