【发布时间】:2013-07-09 22:34:17
【问题描述】:
我有一个场景,当我开始在 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);
}
}
}
【问题讨论】:
标签: c# .net visual-studio-2012 visual-studio-addins