拡張機能(VSPackage)を開発しており、VSPackage.csのコンストラクターで2つのデバッガーイベントをサブスクライブしています。
public sealed class ComboBoxPackage : Package
{
....
public ComboBoxPackage()
{
Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering constructor for: {0}", this.ToString()));
_dte = (DTE)Package.GetGlobalService(typeof(DTE));
_events = _dte.Events;
_debuggerEvents = _events.DebuggerEvents;
_debuggerEvents.OnEnterRunMode += _debugEvents_OnEnterRunMode;
_debuggerEvents.OnContextChanged +=_debuggerEvents_OnContextChanged;
}
void _debuggerEvents_OnContextChanged(EnvDTE.Process NewProcess, Program NewProgram, Thread NewThread, EnvDTE.StackFrame NewStackFrame)
{
throw new NotImplementedException();
}
private void _debugEvents_OnEnterRunMode(dbgEventReason Reason)
{
return;
}
}
私がそれを実行しているとき(アプリケーションの実行を戦略的に実行しているとき)、_ debuggerEvents_OnContextChangedのみが呼び出され、_debugEvents_OnEnterRunModeは呼び出されません。
Addinプロジェクトで同じことをした場合、すべて正常に機能します。