SolutionBuild.BuildState Property

Definition

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 EnvDTE::vsBuildState BuildState { EnvDTE::vsBuildState get(); };
public:
 property EnvDTE::vsBuildState BuildState { EnvDTE::vsBuildState get(); };
[System.Runtime.InteropServices.DispId(5)]
public EnvDTE.vsBuildState BuildState { [System.Runtime.InteropServices.DispId(5)] get; }
[<System.Runtime.InteropServices.DispId(5)>]
[<get: System.Runtime.InteropServices.DispId(5)>]
member this.BuildState : EnvDTE.vsBuildState
Public ReadOnly Property BuildState As vsBuildState

Property Value

A vsBuildState value representing the status of the build operation.

Attributes

Examples

public void CodeExample(DTE2 dte)  
{    
    try  
    {  
        SolutionBuild sb = dte.Solution.SolutionBuild;  
        SolutionConfiguration sc = sb.ActiveConfiguration;  
        vsBuildState vsBS;  
        string msg = "Return relative path to startup projects: ";  
        foreach (String s in (Array)sb.StartupProjects)  
        {  
            msg += "\n   " + s;  
        }  
        msg += "\nSolutionConfiguration: " + sc.Name;  
        vsBS = sb.BuildState;  
        if (vsBS == vsBuildState.vsBuildStateDone)  
            msg += "\nA build has occurred.";  
        else if (vsBS == vsBuildState.vsBuildStateInProgress)  
            msg += "\nA build is in progress.";  
        else msg += "\nA build has not occurred.";  

        MessageBox.Show(msg);  
    }  
    catch(Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

Remarks

BuildState has vsBuildStateNotStarted so that you can detect a race condition; that is, when you start the environment to do a build and then check its build state before the build has actually begun. Checking to see if vsBuildState equals vsBuildStateNotStarted allows you to avoid this situation. It also allows you to determine whether the value of the LastBuildInfo property is valid.

Applies to