Udostępnij za pośrednictwem


Jak: tworzenie rozwiązania i konfiguracje budowania projektu

Visual Studio Automatyzacji modelu oferuje obiektów, które pozwalają kontrolować roztworu i projektu konfiguracje kompilacji.Konfigurację kompilacji rozwiązania określa, jak niektóre projekty w roztworze są zbudowane i, jeśli włączona, wdrożona.Projekt konfiguracji kompilacji, które są wymienione w Stron właściwości projektu okno dialogowe, lista wszystkich dostępnych typów projektu buduje, takich jak program Debug lub wydania i platformy, takie jak.NET lub systemu Win32.Dla każdej kombinacji kompilacji i platformy jest konfiguracji Projekt — zestaw właściwości określonego projektu i ustawienia.

Obiekty konfiguracji kompilacji rozwiązania są:

Nazwa obiektu

Opis

SolutionBuild2obiekt

Służy do konstruowania, czyszczenia i wdrażanie konfiguracji rozwiązania aktualnie aktywne.

SolutionConfiguration2obiekt

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

SolutionConfigurationsKolekcja

Zawiera wszystkie zdefiniowane SolutionConfiguration obiektów.

SolutionContextobiekt

Reprezentuje konfigurację projektu w SolutionConfiguration obiektu.

SolutionContextsKolekcja

Zawiera wszystkie SolutionContext obiektów w SolutionConfiguration obiektu.

BuildDependencyobiekt

Reprezentuje projekt, który musi być zbudowane przed będący właścicielem projektu mogą być wbudowane.

BuildDependenciesKolekcja

Zawiera wszystkie projekty, które muszą być budowane przed będący właścicielem projektu mogą być wbudowane.

Obiekty konfiguracji budowania projektu są:

Nazwa obiektu

Opis

ConfigurationManagerobiekt

Reprezentuje konfigurację kompilacji i platform.

Configurationobiekt

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

ConfigurationsKolekcja

Zawiera wszystkie Configuration obiektów.

OutputGroupobiekt

Zawiera pliki, które są wbudowane w projekcie.

OutputGroupsKolekcja

Zawiera wszystkie OutputGroup obiektów.

Korzystając z tych obiektów można:

  • Tworzenie, dodawanie projektów, aby uaktywnić i usuwanie konfiguracji rozwiązania.

  • Budowanie, uruchomić lub wdrożenia jakiegokolwiek projektu, w konfiguracji rozwiązania.

  • Uzyskać informacje o obiektach konfiguracji Projekt lub rozwiązanie.

  • Dodać, usunąć lub uzyskać informacje na temat zależności budowania projektu.

[!UWAGA]

Okien dialogowych i poleceń menu, którą widzisz mogą różnić się od tych opisanych w pomocy, w zależności od tego, aktywne ustawienia lub edition.Procedury te zostały opracowane z ogólnych ustawień rozwoju aktywnych.Aby zmienić ustawienia, wybierz polecenie przywóz i wywózUstawienia na Narzędzia menu.Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

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ć kod, Utwórz nowy Visual Studio -w projekcie i Zastąp kod klasy Connect.cs lub Connect.vb z kodem w przykładzie.Przed uruchomieniem dodatku, należy otworzyć projekt w Visual Studio IDE.Aby uzyskać informacje o sposobach uruchamiania dodatku, zobacz Jak: dodatki formantu przy użyciu dodać Menedżera.

Zobacz też

Zadania

Jak: Dodawanie i obsługiwać poleceń

Jak: Tworzenie dodatku

Instruktaż: Tworzenie kreatora

Koncepcje

Roztwór i podstawowe informacje o projekcie

Wykres modelu obiektu automatyzacji

Inne zasoby

Kompilowanie aplikacji w Visual Studio

Tworzenia i kontrolowania środowisku systemu Windows.

Tworzenie dodatków i kreatorów

Automatyzacja i rozszerzalność odniesienia