0

以前のデバッグセッションで選択したプロセスにアタッチできるVisualStudioパッケージを作成しようとしています。基本的に、私はプロセスにアタッチする方法を知っています:

var dte = GetGlobalService(typeof(DTE)) as DTE2;
if (dte != null)
{
    IList<Process2> processes =
        dte.Debugger.LocalProcesses.Cast<Process2>()
            .Where(process => process.Name.IndexOf("process.exe", StringComparison.Ordinal) != -1)
            .ToList();
    foreach (var p in processes)
    {
        p.Attach();
    }
}

問題は、前回接続したプロセスを取得する方法です。これについて保存されている情報はありますか?そうでない場合、それを助けるロジックを書く方法は?

4

2 に答える 2

0

私はそのような情報を知りません。機能する可能性のある別のアプローチは、各プロセスに WCF サービスを追加することです。このサービスを使用すると、デバッガーを起動したり、デバッガーが既に起動されているかどうかを確認したりできます。

 public class DebugService : IDebugService
    {
        public void LaunchDebugger()
        {
            //TODO - write some code indicating that this 
            //process was bebugged. e.g. - mark a flag in DB or file
            Debugger.Launch();
        }

        public bool WasDebuggedLastTime()
        {
            //TODO - write code to check if this process was debugged
        }

    }
于 2013-02-25T14:27:58.257 に答える