4

拡張機能(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プロジェクトで同じことをした場合、すべて正常に機能します。

4

1 に答える 1

2

十分に遅くないことを願っています... コードから直接 DebuggerEvents への参照を保持し、そこからイベントを処理していますか。

それは私にも同じことが起こりました、そして私はこの方法でそれを修正しました。

于 2013-11-12T20:59:44.647 に答える