次の方法で共有


VSProjectEvents.BuildManagerEvents プロパティ

BuildManager イベントへのアクセスを可能にする BuildManagerEvents オブジェクトを取得します。

名前空間:  VSLangProj
アセンブリ:  VSLangProj (VSLangProj.dll 内)

構文

'宣言
ReadOnly Property BuildManagerEvents As BuildManagerEvents
    Get
BuildManagerEvents BuildManagerEvents { get; }
property BuildManagerEvents^ BuildManagerEvents {
    BuildManagerEvents^ get ();
}
abstract BuildManagerEvents : BuildManagerEvents
function get BuildManagerEvents () : BuildManagerEvents

プロパティ値

型: VSLangProj.BuildManagerEvents
BuildManagerEvents オブジェクトを返します。

解説

BuildManager イベントは、カスタム ツールに関連付けられているプロジェクト項目への変更を追跡するために使用されます。 DesignTimeOutputDirty は、プロジェクト項目が追加または変更されていることを示します。 DesignTimeOutputDeleted は、プロジェクト項目が削除されていることを示します。 詳細については、「BuildManager」を参照してください。

Events オブジェクトを使用して、特定のプロジェクトの DesignTimeOutputDeleted および DesignTimeOutputDirty に、イベント処理メソッドを関連付ける例を次に示します。

' 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

次の 2 つの例では、遅延バインディングによる VBBuildManagerEvents プロパティを使用して、Visual Basic プロジェクトのイベントにアクセスしています。 Visual C# のイベントにアクセスする場合は、CSharpBuildManagerEvents プロパティを使用します。

また、BuildManager オブジェクトのイベントを処理するために、2 つの遅延バインディングによるメソッドも使用します。 最初のメソッドは、特定のプロジェクトのイベントを処理するために使用され、コンパイル時に 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

もう 1 つの遅延バインディングによるメソッドは、ソリューション内のすべてのプロジェクトのイベントに対して応答するために使用されます。 この方法では、特定のプロジェクトだけに対してイベントをフィルターすることはできません。 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 名前空間