EnvironmentEvents
VisualStudioのマクロエクスプローラーのマクロを介して動作を変更できます。
Private Enum IDEMode
Design = 1
Break = 2
Run = 3
End Enum
Private _IDEMode As IDEMode = IDEMode.Design
Public Sub DTEDebuggerEvents_OnDebugRun() Handles _
DebuggerEvents.OnEnterRunMode
If _IDEMode = IDEMode.Design Then
DTE.ExecuteCommand("Build.RebuildSolution")
End If
_IDEMode = IDEMode.Run
End Sub
Public Sub DTEDebuggerEvents_OnDebugDesign() Handles _
DebuggerEvents.OnEnterDesignMode
_IDEMode = IDEMode.Design
End Sub
Public Sub DTEDebuggerEvents_OnDebugBreak() Handles _
DebuggerEvents.OnEnterBreakMode
_IDEMode = IDEMode.Break
End Sub
これはVisualStudioの変更であるため、一度設定するとすべてのソリューションで機能します
更新
上記のソリューションは機能しますが、デバッガーが実行されている場合でもIDEがデザインモードに変わるコンテンツファイルに関するいくつかの落とし穴があります。状況によっては、デバッガーの実行中にビルドを試みます。適切な解決策は次のとおりです。
Private _curDebugState As EnvDTE80.dbgProcessState
Public Sub debuggerStateChangedHandler
(ByVal NewProcess As EnvDTE.Process,
ByVal processState As EnvDTE80.dbgProcessState)
Handles DebuggerProcessEvents.OnProcessStateChanged
If _curDebugState = dbgProcessState.dbgProcessStateStop And processState = dbgProcessState.dbgProcessStateRun Then
DTE.ExecuteCommand("Build.RebuildSolution")
End If
_curDebugState = processState
End Sub