我有一个场景,当我开始在Visual Studio中调试Silverlight OOB项目时,调试器会自动附加到该项目,但它不会附加到iisexpress进程它正在运行Silverlight应用程序连接到的Web服务。它确实启动iisexpress,但不会自动附加到它。我必须手动进入Debug-> Attach处理,找到iisexpress并附加到它来调试客户端和服务器端代码。Visual Studio 2012加载项 - 如何将调试器附加到进程
由于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);
}
}
}
有点相关:http://stackoverflow.com/q/6696746/10245 –