我正在尝试在Visual Studio 2013 Ultimate中调试w3wp.exe进程的故障转储。
当我点击“Debug Managed Only”,“Debug Mixed”或“Debug Managed Memory”时,我收到错误:
“此微控制器无法进行托管调试。目标中的clr.dll版本与为其构建的mscordacwks.dll版本不匹配。”
我在http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/20/using-visual-studio-2013-to-diagnose-net-memory-issues-in-production.aspx?PageIndex=2上发现了一条评论,表示修复方法是:
在您的符号设置中启用“Microsoft符号服务器”(工具 - >选项 - >调试 - >符号,选中“Microsoft符号服务器”并指定本地缓存)“。
我已经这样做但我仍然收到错误。
我也尝试重新启动Visual Studio并重新启动。
我在The version of clr.dll in the target does not match the one mscordacwks.dll was built for和The version of clr.dll does not match the one mscordacwks.dll was built for中发现了两个相关问题,但这两个问题都与Visual Studio 2010有关,我的问题在于Visual Studio 2013,并且针对这些问题推荐的修补程序没有为我工作。
感谢任何提示或想法......
答案 0 :(得分:2)
重新启动Visual Studio为我修复了它。
答案 1 :(得分:0)
看起来像我的确切场景。在它上面工作了大约一个星期,我能够让这个工作的唯一方法就是使用我的旧版dev机器与VS 2012完全相同的.NET框架生产运行。我能够看到整个堆栈的痕迹,我很高兴。
我一直认为符号服务器应该加载正确版本的所有内容,但它不起作用。可能是VS 2013中的一个错误。我很想尝试VS 2015.
我是想试试这个: What to do with “The version of SOS does not match the version of CLR you are debugging” in WinDbg? 因为那么你可以加载你想要的版本。我从未尝试过WinDbg。