VS 2017立即窗口显示“C#编译器内部错误”

时间:2018-04-26 09:32:03

标签: c# debugging visual-studio-2017 visual-studio-debugging immediate-window

我使用Visual Studio 2017(15.6.6)。在调试时,我尝试在即时窗口中评估像int a = 2;这样的简单表达式。错误

  

C#编译器中的内部错误

被抛出。

我尝试在this question中暗示启用Use Managed Compatibility Mode,但它没有帮助。

感谢您的帮助。

5 个答案:

答案 0 :(得分:4)

进一步搜索我找到了this issue on GitHub,其答案建议同时检查Use the legacy C# and VB expression evaluators。 Visual Studio向我发出关于检查此选项的警告,但启用此选项后,我可以再次在立即窗口中评估表达式。

甚至可以再次关闭Use Managed Compatibility Mode

更新:请注意,虽然使用传统表达式计算器会阻止我在调试时检查局部变量,所以我不会将其称为解决方案。

答案 1 :(得分:1)

就我而言,问题出在特定的程序集中。当我们查看组装信息时,(从解决方案资源管理器中,右键单击项目,选择“属性”,然后单击“组装信息”)。

因此,我们给了它一个Guid,然后对其进行了重建,并且可以正常工作。

答案 2 :(得分:0)

我有同样的问题。不知道它是否是您的选择,但对我来说这是下一个问题:而不是" Debug"版本"发布"被打开了。所以一旦我切换回调试,我就摆脱了这个错误。

答案 3 :(得分:0)

在处理自己的NuGet软件包时,我遇到了相同的错误。 以我为例,VS在“%userprofile%.nuget”文件夹中而不是在“ build”输出文件夹中解析我的程序集副本的路径。

当前,我不知道如何防止针对新项目类型的错误解决,因为没有为引用指定提示,但是有一个简单的解决方法:只需在调试前从%userprofile%\.nuget\packages\%yourpackage%删除未打包的软件包副本即可。

答案 4 :(得分:-1)

清除目录C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files为我解决了这个问题。如果问题再次出现,我将尝试建立一个仓库...