Proprietà SolutionBuild2.BuildState
Ottiene un valore che indica se una compilazione è stata avviata nella sessione corrente dell'ambiente, se una compilazione è attualmente in corso o se una compilazione è stata completata.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
ReadOnly Property BuildState As vsBuildState
Get
vsBuildState BuildState { get; }
property vsBuildState BuildState {
vsBuildState get ();
}
abstract BuildState : vsBuildState
function get BuildState () : vsBuildState
Valore proprietà
Tipo: EnvDTE.vsBuildState
Valore vsBuildState che rappresenta lo stato dell'operazione di compilazione.
Implementa
Note
BuildState dispone di vsBuildStateNotStarted per individuare una race condition, un processo che avvia l'ambiente per l'esecuzione di una compilazione e che controlla lo stato della compilazione prima ancora che sia iniziata. Effettuando un controllo per stabilire se vsBuildState equivale a vsBuildStateNotStarted si evita una situazione di questo tipo. Tale controllo consente, inoltre, di determinare se il valore della proprietà LastBuildInfo è valido.
Esempi
In questo esempio viene determinato lo stato della compilazione per ciascuna configurazione di avvio attiva. e aprire un progetto nell'ambiente di sviluppo integrato (IDE) Visual Studio.
Per ulteriori informazioni sulla modalità di esecuzione di questo esempio come componente aggiuntivo, vedere Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.
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);
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.