SolutionBuild2 Interface

Represents the root of the build automation model at the solution level.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Syntax

'Declaration
<GuidAttribute("C2516E4B-5D69-459D-B539-C95A71C4FA3D")> _
Public Interface SolutionBuild2 _
    Inherits SolutionBuild
[GuidAttribute("C2516E4B-5D69-459D-B539-C95A71C4FA3D")]
public interface SolutionBuild2 : SolutionBuild
[GuidAttribute(L"C2516E4B-5D69-459D-B539-C95A71C4FA3D")]
public interface class SolutionBuild2 : SolutionBuild
[<GuidAttribute("C2516E4B-5D69-459D-B539-C95A71C4FA3D")>]
type SolutionBuild2 =  
    interface 
        interface SolutionBuild 
    end
public interface SolutionBuild2 extends SolutionBuild

The SolutionBuild2 type exposes the following members.

Properties

  Name Description
Public property ActiveConfiguration Gets the currently active SolutionConfiguration object.
Public property BuildDependencies Gets a BuildDependencies collection that allows you to specify which projects depend on which other projects.
Public property BuildState Gets whether a build has ever been started in the current environment session, whether a build is currently in progress, or whether a build has been completed.
Public property DTE Gets the top-level extensibility object.
Public property LastBuildInfo Gets the number of projects that failed to build.
Public property LastPublishInfo Gets the number of items that were successfully published.
Public property Parent Gets the immediate parent object of a SolutionBuild object.
Public property PublishState Gets the state of a publish operation.
Public property SolutionConfigurations Gets a collection of SolutionConfiguration objects.
Public property StartupProjects Gets or sets the names of projects that are entry points for the application.

Top

Methods

  Name Description
Public method Build Causes the active solution configuration to begin building.
Public method BuildProject Builds the specified project and its dependencies in the context of the specified solution configuration.
Public method Clean Deletes all compiler-generated support files for marked projects.
Public method Debug Starts debugging the solution.
Public method Deploy Causes each project in the active solution configuration that is marked for deployment to deploy.
Public method DeployProject Deploys a project.
Public method Publish Initiates a publish operation.
Public method PublishProject Publishes a project.
Public method Run Causes the active solution configuration to execute.

Top

Remarks

The SolutionBuild object provides access to all solution configurations and their properties, the project build dependencies, and startup projects.

The counterpart to the SolutionBuild object at the project and item level is the ConfigurationManager object.

Examples

This example sets the first solution configurations item to "release" and then builds the solution. Open a project in the Visual Studio integrated development environment (IDE) before running this add-in.

For more information about how to run this example as an add-in, see How to: Compile and Run the Automation Object Model Code Examples.

Imports EnvDTE
Imports EnvDTE80
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)
    SolutionBuild2BuildExample(_applicationObject)
End Sub
Sub SolutionBuild2BuildExample(ByVal dte As DTE2)
    ' Open a solution in Visual Studio before running this example.
    Try
        Dim soln As Solution2 = CType(_applicationObject.Solution, _
        Solution2)
        Dim sb As SolutionBuild2
        Dim bld As BuildDependencies
        sb = CType(soln.SolutionBuild, SolutionBuild2)
        bld = sb.BuildDependencies
        MsgBox("The project " & bld.Item(1).Project.Name & " has "  _
        & bld.Count.ToString() & " build dependencies.")
        MsgBox("Set the configuration to release and build...")
        sb.SolutionConfigurations.Item("Release").Activate()
        sb.Build()
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    SolutionBuild2BuildExample(_applicationObject);
}
public void SolutionBuild2BuildExample(DTE2 dte)
{
    try
    {
        Solution2 soln = (Solution2)_applicationObject.Solution;
        SolutionBuild2 sb;
        BuildDependencies bld;
        // Open a solution in Visual Studio before 
        // running this example.
        sb = (SolutionBuild2)soln.SolutionBuild;
        bld = sb.BuildDependencies;
        MessageBox.Show("The project " + bld.Item(1).Project.Name 
+ " has " + bld.Count.ToString() + " build dependencies.");
        MessageBox.Show("Set the configuration to release 
and build...");
        sb.SolutionConfigurations.Item("Release").Activate();
        sb.Build(true);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

See Also

Reference

EnvDTE80 Namespace