Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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# 调试时无法计算表达式_C#_Asp.net_Vb.net_Visual Studio 2013 - Fatal编程技术网

C# 调试时无法计算表达式

C# 调试时无法计算表达式,c#,asp.net,vb.net,visual-studio-2013,C#,Asp.net,Vb.net,Visual Studio 2013,在调试针对IIS运行的asp.net代码时,使用Visual studio 2013和断点并尝试使用quick watch计算变量时,我经常无法计算表达式 从asp.net项目文件夹中删除.suo似乎可以在重新加载解决方案后解决此问题 这是公认的错误吗?现在,在Visual studio 2013中,在多台机器上获得了很多这样的功能 C调试引擎严重依赖CLR调试器来计算表达式。该消息表示CLR处于无法执行简单计算的状态,其原因可能包括: 局部变量被优化掉了 线程在GC不安全点停止 以前的函数调用

在调试针对IIS运行的asp.net代码时,使用Visual studio 2013和断点并尝试使用quick watch计算变量时,我经常无法计算表达式

从asp.net项目文件夹中删除.suo似乎可以在重新加载解决方案后解决此问题


这是公认的错误吗?现在,在Visual studio 2013中,在多台机器上获得了很多这样的功能

C调试引擎严重依赖CLR调试器来计算表达式。该消息表示CLR处于无法执行简单计算的状态,其原因可能包括:

局部变量被优化掉了 线程在GC不安全点停止 以前的函数调用导致调试器进入错误状态,因此无法进行进一步的计算
我今天面对的是VS2013

转到工具->选项->调试->常规-> 滚动至底部以使用托管兼容性模式,然后选择该选项

以下博客URL的屏幕截图: 重新启动调试。希望它能帮助别人

帮助我的是下面

结果证明这很有帮助

此外,你还可以看到@Dreamers的答案


转到工具->选项->环境->常规->检查基于客户端性能的自动调整视觉体验选项。

我在特定项目中遇到过这种情况,原因是Costura。Fody将所有DLL嵌入执行程序集中

在这种情况下,您可以禁用

从FodyWever.xml中注释掉Costura

<Weavers>
  <!--<Costura />-->
</Weavers>
如果包含在*.csproj中,则禁用清洁参考目标

<!--<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild">
    <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%
     (DestinationSubDirectory)%(Filename)%(Extension)')" />
    <Exec Command="DeleteEmptyDirectory.bat" />
  </Target>-->

其中一些选项会随着时间的推移而改变——而其他答案中的顶级解决方案似乎不再存在——搜索“选项”对话框会有所帮助

现在,对于我发现的一个ASPNET核心项目,启用它似乎有帮助:

仅在模块加载管理时抑制JIT优化:禁用 加载模块并启用JIT时托管代码的JIT优化 在附加调试器时编译。禁用优化可能会导致 使调试某些问题变得更容易,尽管代价是 表演如果您只使用我的代码,请取消JIT 优化可能导致非用户代码显示为“我的用户代码” 密码有关更多信息,请参阅JIT优化和调试


如果它似乎没有帮助,我建议再次关闭它。

我也看到了这一点。在我的例子中,我怀疑这与调试加载了多个AppDomains的进程有关。您的应用程序池中是否有多个应用程序?是否必须在调试模式下编译?它是单个项目还是包含多个项目?@jlew在应用程序池中只有一个应用程序。tim schmelter是的,它编译为调试模式…出于绝望,我重新启动了我的系统,它神奇地重新开始工作…删除了suo。文件帮了我很多忙。这条消息是我只在vs2013 RTM中注意到的。我不记得在vs2013RC和beta,2012或2010中调试时注意到它。非常感谢。回答得很好:我做了这件事,这没有什么区别,我调试C和C++多年,在过去的几天里,我不能查看我的C++成员变量,无论我选择什么样的选项使用VS2015。请注意,一些功能不适用于托管兼容性模式,例如实时代码修改、性能度量工具等。在我的情况下,这是一个值得努力的解决方案。哦,谢谢,仍然适用于VS2019,以执行linq查询