SolutionBuild2.BuildState - свойство
Обновлен: Ноябрь 2007
Возвращает сведения о том, запускалось ли построение во время текущего сеанса работы в среде, осуществляется ли построение в текущий момент или оно уже завершено.
Пространство имен: EnvDTE80
Сборка: EnvDTE80 (в EnvDTE80.dll)
Синтаксис
'Декларация
ReadOnly Property BuildState As vsBuildState
'Применение
Dim instance As SolutionBuild2
Dim value As vsBuildState
value = instance.BuildState
vsBuildState BuildState { get; }
property vsBuildState BuildState {
vsBuildState get ();
}
function get BuildState () : vsBuildState
Значение свойства
Тип: EnvDTE.vsBuildState
Значение vsBuildState, представляющее состояние операции построения.
Реализации
Заметки
BuildState имеет значение vsBuildStateNotStarted, поэтому можно обнаружить состояние гонки; а именно, процесс, который запускает среду для выполнения построения, а затем проверяет состояние построения фактического начала построения. Чтобы избежать такой ситуации, следует проверить, не имеет ли свойство vsBuildState значениеvsBuildStateNotStarted. Это также позволяет определить, допустимо ли значение свойства LastBuildInfo.
Примеры
В этом примере определяется состояние построения для каждой активной начальной конфигурации. Перед запуском этой надстройки откройте проект в интегрированной среде разработки Visual Studio.
Дополнительные сведения о запуске этого примера в виде надстройки см. в разделе Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации.
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);
}
}
Разрешения
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.