Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual studio 2012加载项-如何将调试器附加到进程_C#_.net_Visual Studio 2012_Visual Studio Addins - Fatal编程技术网

C# Visual studio 2012加载项-如何将调试器附加到进程

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删除了宏,我无法使用它来自动附加,所以我尝试创建一个简单的外接程序来代替它 不过,我还是被困在如何附加到流程上。我尝试了以下方

我有一个场景,当我开始在VisualStudio中调试silverlight OOB项目时,调试器会自动附加到该项目,但它不会附加到运行silverlight应用程序所连接的web服务的iisexpress进程。它会启动iisexpress,但不会自动连接到它。我必须手动转到调试->附加到进程,找到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);
        }
    }
}

适用于VS 2010和VS 2012:

解决方案->右键单击->设置启动项目->多个启动项目


选择您的两个项目,并在“操作”下将其设置为开始,而不是(对于第二个项目)可能的不调试启动

谢谢!这在VS2012中也起到了作用;只需将它们都设置为“开始”,无需外接程序。:)有些相关: