IVsSolutionBuildManager2 Interface

Definition

Allows solutions to manage configuration information.

public interface class IVsSolutionBuildManager2 : Microsoft::VisualStudio::Shell::Interop::IVsSolutionBuildManager
public interface class IVsSolutionBuildManager2 : Microsoft::VisualStudio::Shell::Interop::IVsSolutionBuildManager
__interface IVsSolutionBuildManager2 : Microsoft::VisualStudio::Shell::Interop::IVsSolutionBuildManager
[System.Runtime.InteropServices.Guid("80353F58-F2A3-47B8-B2DF-0475E07BB1C6")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IVsSolutionBuildManager2 : Microsoft.VisualStudio.Shell.Interop.IVsSolutionBuildManager
[System.Runtime.InteropServices.Guid("80353F58-F2A3-47B8-B2DF-0475E07BB1C6")]
[System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
public interface IVsSolutionBuildManager2 : Microsoft.VisualStudio.Shell.Interop.IVsSolutionBuildManager
[<System.Runtime.InteropServices.Guid("80353F58-F2A3-47B8-B2DF-0475E07BB1C6")>]
[<System.Runtime.InteropServices.InterfaceType(1)>]
type IVsSolutionBuildManager2 = interface
    interface IVsSolutionBuildManager
[<System.Runtime.InteropServices.Guid("80353F58-F2A3-47B8-B2DF-0475E07BB1C6")>]
[<System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)>]
type IVsSolutionBuildManager2 = interface
    interface IVsSolutionBuildManager
Public Interface IVsSolutionBuildManager2
Implements IVsSolutionBuildManager
Attributes
Implements

Remarks

Implemented by the environment, IVsSolutionBuildManager and IVsSolutionBuildManager2 orchestrate the building of projects within the solution. The solution build manager manages the set of dependencies between projects at the project level and will build those projects in the correct order based on those dependencies.

Solution build dependencies are set using the Solution Configuration property pages. The projects themselves supply the build system with information relating to their own items and the dependencies between those items.

Project build dependencies are set using the Project Configuration property pages. For more information relating to Property Pages and setting configurations, see Property Pages and Managing Configuration Options.

Other callers of this interface would be packages providing add-ins that want to control the build process and programmatically cause some build operations to occur at specific times. For example, the debug component of the environment calls QueryDebugLaunch to programmatically enable and disable the F5 key, and DebugLaunch to start the debug process that was set as the solution startup project.

Notes to Implementers

Implemented by the environment.

Notes to Callers

Called by the environment or a parent project that needs to manage build operations for child (nested) projects. There could also be other interested packages that want to track build events, so they would call AdviseUpdateSolutionEvents(IVsUpdateSolutionEvents, UInt32) to listen for and react to those build events.

You can obtain an IVsSolutionBuildManager2 interface from the SVsSolutionBuildManager service.

Methods

AdviseUpdateSolutionEvents(IVsUpdateSolutionEvents, UInt32)

Adds the caller to the list of listeners for IVsUpdateSolutionEvents2 events.

CalculateProjectDependencies()

Forces dependencies to be recalculated.

CanCancelUpdateSolutionConfiguration(Int32)

Enables or disables the Cancel menu item.

CancelUpdateSolutionConfiguration()

Cancels the update solution configuration.

DebugLaunch(UInt32)

Launches the startup project specified by the solution as the debug project.

FindActiveProjectCfg(IntPtr, IntPtr, IVsHierarchy, IVsProjectCfg[])

Determines the project configuration that is currently active.

get_CodePage(UInt32)

Obsolete method. Do not use.

get_IsDebug(Int32)

Obsolete method. Do not use.

get_StartupProject(IVsHierarchy)

Programmatic method to get the startup project that will be run when the F5 key is pressed.

GetProjectDependencies(IVsHierarchy, UInt32, IVsHierarchy[], UInt32[])

Returns a list of projects that the given hierarchy depends on.

put_CodePage(UInt32)

Obsolete method. Do not use.

put_IsDebug(Int32)

Obsolete method. Do not use.

QueryBuildManagerBusy(Int32)

Determines if the build manager is busy.

QueryDebugLaunch(UInt32, Int32)

Determines whether or not the F5 (debug start) key should be enabled.

QueryProjectDependency(IVsHierarchy, IVsHierarchy, Int32)

Checks to see if one project is dependent upon another.

SaveDocumentsBeforeBuild(IVsHierarchy, UInt32, UInt32)

A project calls this method to ensure that the buildable/runnable components of projects are saved before starting build or run operations.

set_StartupProject(IVsHierarchy)

Sets the startup project that will be run when the F5 key is pressed.

StartSimpleUpdateProjectConfiguration(IVsHierarchy, IVsHierarchy, String, UInt32, UInt32, Int32)

This is a variant of the update command that allows you to build, clean, deploy, or launch a single project configuration.

StartSimpleUpdateSolutionConfiguration(UInt32, UInt32, Int32)

Builds, cleans, or deploys a list of solutions.

StartUpdateProjectConfigurations(UInt32, IVsHierarchy[], UInt32, Int32)

Builds, cleans, or deploys a list of projects.

StartUpdateSpecificProjectConfigurations(UInt32, IVsHierarchy[], IVsCfg[], UInt32[], UInt32[], UInt32[], UInt32, Int32)

Use this method to maintain total control of a build process.

UnadviseUpdateSolutionEvents(UInt32)

Removes the caller from the list of listeners for IVsUpdateSolutionEvents2 events.

UpdateSolutionConfigurationIsActive(Int32)

Checks for any build, clean, or deploy action in progress.

Applies to