C# Visual studio 2012加载项-如何将调试器附加到进程
我有一个场景,当我开始在VisualStudio中调试silverlight OOB项目时,调试器会自动附加到该项目,但它不会附加到运行silverlight应用程序所连接的web服务的iisexpress进程。它会启动iisexpress,但不会自动连接到它。我必须手动转到调试->附加到进程,找到iisexpress并附加到它以调试客户端和服务器端代码 由于VS2012删除了宏,我无法使用它来自动附加,所以我尝试创建一个简单的外接程序来代替它 不过,我还是被困在如何附加到流程上。我尝试了以下方法,它们都在正确的时间触发并找到iisexpress进程,但所有3种方法在尝试附加到它时都给出了异常。有人能建议我怎么做吗C# Visual studio 2012加载项-如何将调试器附加到进程,c#,.net,visual-studio-2012,visual-studio-addins,C#,.net,Visual Studio 2012,Visual Studio Addins,我有一个场景,当我开始在VisualStudio中调试silverlight OOB项目时,调试器会自动附加到该项目,但它不会附加到运行silverlight应用程序所连接的web服务的iisexpress进程。它会启动iisexpress,但不会自动连接到它。我必须手动转到调试->附加到进程,找到iisexpress并附加到它以调试客户端和服务器端代码 由于VS2012删除了宏,我无法使用它来自动附加,所以我尝试创建一个简单的外接程序来代替它 不过,我还是被困在如何附加到流程上。我尝试了以下方
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);
}
}
}
适用于VS 2010和VS 2012: 解决方案->右键单击->设置启动项目->多个启动项目
选择您的两个项目,并在“操作”下将其设置为开始,而不是(对于第二个项目)可能的不调试启动谢谢!这在VS2012中也起到了作用;只需将它们都设置为“开始”,无需外接程序。:)有些相关: