.net 无法使用Visual Studio 2013调试托管代码(“Cannot evaluate expression”错误- am using debug build)(请注意,VS 2012工作)

7fyelxc5  于 2023-10-21  发布在  .NET
关注(0)|答案(9)|浏览(91)

我有.net应用程序(GUI以及PowerShell)针对4.5构建。我的操作系统是Server 2012。当我将应用程序附加到2013 Visual Studio时,调试器有时无法工作。它没有计算表达式或显示局部变量(也没有观察窗口/即时窗口什么都不起作用-就好像项目是用发布构建的)。但我有建立与'双'配置。如前所述,当我简单地连接VS 2012时,同样的事情也会发生(是的,我有2k 13和2k 12 SXS)
请注意,如果我将具有相同设置(托管调试)的相同进程附加到Visual Studio 2012,则它始终有效。
我确保加载了符号(通过检查Visual Studio + debug + windows中的模块选项卡),断点被命中。
有什么问题吗?所有的更新也都是最新的。
当我使用VS 2k 13 IDE进行开发时,启动vs 2012只是为了调试,这有点烦人。

hpxqektj

hpxqektj1#

如果您遇到同样的问题,请查看http://weblog.west-wind.com/posts/2013/Nov/21/Visual-Studio-2013-Could-not-evaluate-Expression-Debugger-Abnormality了解详细信息。
以下是为我解决的答案:
我已经在工具中设置了“使用托管兼容模式”标志|选项|调试器|将军
有关详细信息,请查看链接,因为他很好地解释了它作为一个故事:)
我很高兴它的工作,否则我只是不得不加载项目在vs 2k 12只是为了调试它是恼人的。

编辑于2014年6月12日

我已经用visual studio 2013 update 2http://www.microsoft.com/en-us/download/details.aspx?id=42666)更新了我的开发环境(根据Maria下面的建议),并删除了“使用托管兼容模式”。我将测试我的应用程序(ps插件,图形用户界面,服务),并更新你在几个星期内,如果调试器是我确定。

编辑于2014年6月26日

我已经测试了我的应用程序,幸运的是,对我来说,一切都工作得很好:).即使是调试器也能很好地使用新的javascript/await模型。所以,看看你是否可以升级到“更新2”-希望这也适用于你的环境?.感谢Maria和调试器团队!
问候。

kzipqqlq

kzipqqlq2#

我删除了所有断点,然后它开始工作,使用Visual Studio 2013 Update 1。这是Dreamer提到的blog post的建议之一。

wmtdaxz3

wmtdaxz33#

我们已经发布了针对您在Update 2 CTP 2 of Visual Studio中描述的问题的修复程序-
请让我知道如果这不能解决你的问题!
感谢!Maria - Visual Studio编辑器

0md85ypi

0md85ypi4#

请注意,虽然目前接受的答案可能会解决问题,但最好了解此解决方案的缺点。做这个改变会让VS 2013对你所有的项目使用旧风格的调试器。这是一个全球性的背景。还有其他方法可以在本地为单个项目更改此设置。请阅读这里了解更多信息:
http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013.aspx

mrzz3bfm

mrzz3bfm5#

我们有一个自定义表达式计算器和我们自己的语言,即使我将项目设置更改为博客中指定的设置,也会出现此警告消息。

<DebugEngines>{351668CC-8477-4fbf-BFE3-5F1006E4DB1F}</DebugEngines>

还有别的事吗?
我们的客户正在使用VS2013 Pro。我已经关闭了我们所有项目的“启用Visual Studio托管过程”,并将该属性添加到我们的客户项目中。每次攻击w3wp.exe时,我仍然会看到警告。

  • 重要注意事项:如果您的项目正在使用Visual Studio宿主进程(许多项目类型的默认设置),则必须禁用该宿主进程才能使此修复正确更改调试模式。要禁用宿主进程,请转到项目属性页上的“启用”窗格,然后取消选中“启用Visual Studio宿主进程”*
yks3o0rb

yks3o0rb6#

您可以通过应用以下要点解决此错误

溶液1:
1)重新启动visual studio并重新打开项目。
2)打开项目bin目录,并删除调试器无法正常工作代码的DLL。
3)然后再次在bin目录中添加DLL引用。
4)删除所有断点。
5)构建项目。
6)在“附加到进程”窗口中附加一个w3wp.exe进程
7)享受你的问题已经解决。
如果上述解决方案不起作用,那么您可以尝试在以下链接中提供的解决方案
http://weblog.west-wind.com/posts/2013/Nov/21/Visual-Studio-2013-Could-not-evaluate-Expression-Debugger-Abnormality

ycggw6v2

ycggw6v27#

我在调试时也遇到过类似的问题,在创建类返回时发生了这个错误。这个类初始化得很好(使用“new classname()”),但是在返回时出现了“cannot evaluate expression”错误。虽然它在以前的Visual Studio版本上工作,但在VS 2017上运行时,它失败了。
经过大量的头脑碰撞,结果发现类中的私有变量,特别是像数组列表和其他类这样的东西,需要用初始值声明,即使设置为null
一旦这样做了,一切都工作,即使解决方案“似乎”与问题无关,也没有给出问题发生的明显线索。

gt0wga4j

gt0wga4j8#

我们在VS2013 Update 5的PostSharp扩展版本5.0.32中遇到了这个问题。
我们的解决方法是将PostSharp扩展降级到4.3.19版本或禁用它。

gtlvzcf8

gtlvzcf89#

在aspx头文件上设置AutoEventWireup=“true”。这将打开调试模式。

相关问题