5

Visual Studio で Silverlight OOB プロジェクトのデバッグを開始すると、デバッガーが自動的にそれに接続するシナリオがありますが、Silverlight アプリケーションが接続する Web サービスを実行している iisexpress プロセスには接続しません。iisexpress は起動しますが、自動的にはアタッチしません。クライアント側とサーバー側の両方のコードをデバッグするには、手動で Debug->Attach to process に移動し、iisexpress を見つけてアタッチする必要があります。

VS2012 ではマクロが削除されたため、それを使用して自動的にアタッチすることはできないため、代わりにそれを行うための簡単なアドインを作成しようとしています。

ただし、プロセスにアタッチする方法にこだわっています。適切なタイミングで起動し、iisexpress プロセスを見つける次の方法を試しましたが、アタッチしようとすると 3 つすべてで例外が発生します。誰も私がこれを行う方法を提案できますか?

private void DebuggerEventsOnOnEnterRunMode(dbgEventReason reason)
{
    if (reason == dbgEventReason.dbgEventReasonLaunchProgram)
    {
        foreach (Process process in _applicationObject.Debugger.LocalProcesses)
        {
            var nameparts = process.Name.Split(Path.DirectorySeparatorChar);
            string name = nameparts[nameparts.Length - 1];
            if (name.Contains("iisexpress"))
                    process.Attach();  
                    // also tried: _applicationObject.ExecuteCommand("Debug.AttachToProcess", process.Name);
                    // and: _applicationObject.ExecuteCommand("Debug.AttachToProcess", name);
        }
    }
}
4

1 に答える 1

4

VS 2010 と VS 2012 の両方で機能します。

ソリューション -> 右クリック -> スタートアップ プロジェクトの設定 -> 複数のスタートアップ プロジェクト

2 つのプロジェクトを選択し、アクションの下でStart without (2nd project) possible Start Without Debuggingに設定します。

于 2013-07-09T22:38:29.267 に答える