次の方法で共有


VSProjectEvents2.BuildManagerEvents プロパティ

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

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

構文

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

プロパティ値

型 : VSLangProj.BuildManagerEvents
BuildManagerEvents オブジェクト。

解説

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

Events オブジェクトを使用して、特定のプロジェクトの DesignTimeOutputDeleted イベントおよび DesignTimeOutputDirty イベントに、イベント処理メソッドを関連付ける例を次に示します。マクロ サンプルの実行方法の詳細については、「方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する」を参照してください。

これらのマクロを実行する前に、Visual Basic、Visual C#、または Visual J# プロジェクトを開いておきます。

' Macro Editor
' Connects events in a Visual Basic or Visual C# project.
Imports VSLangProj
Imports VSLangProj80
Sub ConnectEvents()
   Dim proj As Project = DTE.Solution.Projects.Item(1)
   Dim vsproj As VSProject2 = CType(proj.Object, VSProject2)
   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 セキュリティ

  • 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

関連項目

VSProjectEvents2 インターフェイス

BuildManagerEvents オーバーロード

VSLangProj80 名前空間

その他の技術情報

Option Strict ステートメント