다음을 통해 공유


VSProjectEvents.BuildManagerEvents 속성

BuildManager 이벤트에 대한 액세스를 제공하는 BuildManagerEvents 개체를 가져옵니다.

네임스페이스:  VSLangProj
어셈블리:  VSLangProj(VSLangProj.dll)

구문

‘선언
ReadOnly Property BuildManagerEvents As BuildManagerEvents
BuildManagerEvents BuildManagerEvents { get; }
property BuildManagerEvents^ BuildManagerEvents {
    BuildManagerEvents^ get ();
}
abstract BuildManagerEvents : BuildManagerEvents with get
function get BuildManagerEvents () : BuildManagerEvents

속성 값

형식: VSLangProj.BuildManagerEvents
BuildManagerEvents 개체를 반환합니다.

설명

BuildManager 이벤트를 사용하면 사용자 지정 도구와 연결된 프로젝트 항목의 변경 내용을 추적할 수 있습니다. DesignTimeOutputDirty는 프로젝트 항목이 추가 또는 변경되었음을 나타냅니다. DesignTimeOutputDeleted는 프로젝트 항목이 삭제되었음을 나타냅니다. 자세한 내용은 BuildManager을 참조하십시오.

예제

이 예제에서는 Events 개체를 사용하여 특정 프로젝트에 대한 DesignTimeOutputDeletedDesignTimeOutputDirty에 이벤트 처리 메서드를 연결합니다.

' Macro Editor
' Connects events in a Visual Basic or Visual C# project.
Imports VSLangProj
Sub ConnectEvents()
   Dim proj As Project = DTE.Solution.Projects.Item(1)
   Dim vsproj As VSProject = CType(proj.Object, VSProject)
   Dim buildman As BuildManagerEvents = vsproj.Events.BuildManagerEvents
   AddHandler buildman.DesignTimeOutputDeleted, AddressOf OutputDeleted
   AddHandler buildman.DesignTimeOutputDirty, AddressOf OutputDirty
End Sub

Sub OutputDeleted(ByVal moniker As String)
   MsgBox("Output " & moniker & " was deleted.")
End Sub

Sub OutputDirty(ByVal moniker As String)
   MsgBox("Output " & moniker & " is dirty.")
End Sub

다음 두 예제에서는 런타임에 바인딩된 VBBuildManagerEvents 속성을 사용하여 Visual Basic 프로젝트 이벤트에 연결합니다. Visual C# 이벤트에 연결하려면 CSharpBuildManagerEvents 속성을 사용합니다.

또한 런타임에 바인딩된 두 개의 메서드를 사용하여 BuildManager 개체 이벤트를 처리할 수 있습니다. 첫 번째 메서드를 사용하면 특정 프로젝트에 대한 이벤트를 처리할 수 있으며 Option Strict Off 문을 사용하여 컴파일해야 합니다. VBImportsEvents의 매개 변수는 선택적 요소입니다. 매개 변수를 생략하면 해당 솔루션에 포함된 모든 Visual Basic 프로젝트에 대한 이벤트가 수신됩니다. VBBuildManagerEvents 호출에 대한 매개 변수가 Project 형식이 아닐 경우 이 메서드는 오류를 반환합니다.

' Macro editor
Option Strict Off
Imports VSLangProj
Dim WithEvents buildEvents As BuildManagerEvents
Sub ConnectProjectBuildManagerEvents()
   Dim proj As Project = DTE.Solution.Projects.Item(1)
   buildEvents = DTE.Events.VBBuildManagerEvents(proj)
End Sub

Public Sub buildEvents_DesignTimeOutputDeleted(ByVal bstrOutputMoniker _
As String) Handles buildEvents.DesignTimeOutputDeleted
   MsgBox(bstrOutputMoniker)
End Sub

런타임에 바인딩된 두 번째 메서드를 사용하면 솔루션에 포함된 모든 프로젝트의 이벤트에 응답할 수 있습니다. 그러나 이 메서드로 특정 프로젝트에 대한 이벤트만 필터링할 수는 없습니다. 이 메서드는 Option Strict On을 사용하여 컴파일합니다.

' Macro editor
Imports VSLangProj
Dim WithEvents buildEvents As VSLangProj.BuildManagerEvents
Sub ConnectAllBuildManagerEvents()
   buildEvents = CType(DTE.Events.GetObject("VBBuildManagerEvents"), _
      BuildManagerEvents)
End Sub

Public Sub buildEvents_DesignTimeOutputDeleted(ByVal bstrOutputMoniker _
As String) Handles buildEvents.DesignTimeOutputDeleted
   MsgBox(bstrOutputMoniker)
End Sub

.NET Framework 보안

참고 항목

참조

VSProjectEvents 인터페이스

VSLangProj 네임스페이스