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);
}
}
}