SolutionBuild2.BuildState (Propiedad)
Indica si se ha iniciado alguna compilación en la sesión del entorno actual, si hay alguna compilación en curso o si ha finalizado alguna compilación.
Espacio de nombres: EnvDTE80
Ensamblado: EnvDTE80 (en EnvDTE80.dll)
Sintaxis
'Declaración
ReadOnly Property BuildState As vsBuildState
Get
vsBuildState BuildState { get; }
property vsBuildState BuildState {
vsBuildState get ();
}
abstract BuildState : vsBuildState
function get BuildState () : vsBuildState
Valor de propiedad
Tipo: EnvDTE.vsBuildState
Valor de vsBuildState que representa el estado de la operación de compilación.
Implementaciones
Comentarios
BuildState contiene vsBuildStateNotStarted, de modo que se pueda detectar una condición de carrera, un proceso que inicia el entorno para realizar una compilación y, a continuación, comprueba el estado de compilación antes de que ésta haya comenzado realmente. Si comprueba si vsBuildState es igual a vsBuildStateNotStarted, podrá evitar esta situación. También le permitirá determinar si el valor de la propiedad LastBuildInfo es válido.
Ejemplos
Este ejemplo determina el estado de compilación de cada configuración de inicio activa. Abra un proyecto en el entorno de desarrollo integrado (IDE) de Visual Studio antes de ejecutar este complemento.
Para obtener más información sobre cómo ejecutar este ejemplo como un complemento, vea Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.
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)
SolutionBuild2Example(_applicationObject)
End Sub
Sub SolutionBuild2Example(ByVal dte As DTE2)
' Open a solution in the Visual Studio IDE
' before running this example.
Try
Dim sb As SolutionBuild2
sb = CType(_applicationObject.Solution.SolutionBuild _
, SolutionBuild2)
Dim sc As SolutionConfiguration2
sc = CType(sb.ActiveConfiguration, SolutionConfiguration2)
Dim vsBldSt As vsBuildState
Dim msg As String = "Return relative path to startup _
projects: "
For Each s As String In CType(sb.StartupProjects, Array)
msg &= vbCr & " " & s
Next
msg &= vbCr & "SolutionConfiguration: " & sc.Name
vsBldSt = sb.BuildState
If (vsBldSt = vsBuildState.vsBuildStateDone) Then
msg &= vbCr & "A build has occurred."
ElseIf (vsBldSt = vsBuildState.vsBuildStateInProgress) Then
msg &= vbCr & "A build is in progress."
Else : msg &= vbCr & "A build has not occurred."
End If
MsgBox(msg)
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;
SolutionBuild2Example(_applicationObject);
}
public void SolutionBuild2Example(DTE2 dte)
{
try
{
SolutionBuild2 sb =
(SolutionBuild2)_applicationObject.Solution.SolutionBuild;
SolutionConfiguration2 sc =
(SolutionConfiguration2)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);
}
}
Seguridad de .NET Framework
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.