visual-studio - Visual Studio 2019:调试期间“本地”面板出错 - “检索本地值的内部错误”
问题描述
原始问题
(有关复制说明,请参阅更新 II)
我最近在调试会话期间弄乱了 Visual Studio 2019。我将“SqlCommand”类的一些属性固定为“Favorites”。从那一刻起,我在“locals”中收到一条错误消息“检索本地值的内部错误”。
值列的右侧有一个“刷新”按钮,当我点击它时,我收到消息“表达式评估器中的内部错误”。
现在我无法取消固定该特定属性,因为无法再打开类树。
此行为不受特定解决方案的约束,我创建了一个新的演示解决方案,我遇到了完全相同的问题。
您可以在下面的屏幕截图中看到它:
主要目标是以某种方式清除类的哪些属性被固定在“本地”窗口中的信息。
我已经尝试了几件事来摆脱错误。
- 似乎 VS 以某种方式存储了关于哪些属性被标记的信息,所以我试图删除 AppData 中的“ComponentModelCache”。
- 我重置设置。
- 我在安装程序中使用修复工具。
- 我删除了 *.suo 文件,然后删除了整个 .vs 文件夹。
- 当我在 /safemode 中启动 devenv 时,我看到了同样的问题。
- devenv /resetuserdata 也没有帮助
- 我检查了活动日志,但没有任何线索。
- 我将项目的目标框架从 4.7.2 更改为 3.5
我使用 Windows Server 2019 Standard、.Net Framework 4.7.2、Visual Studio 2019 16.7.6
我在演示应用程序中使用以下代码:
private static int Main(string[] args)
{
SqlConnection conn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
return 0;
}
更新我
这是我正在谈论的固定功能。我在 SqlConnection 对象的 WorkstationId 属性的示例中展示了它(因为它在 SqlCommand 上不再起作用)。我相信我在命令文本和参数属性上使用了它。pinnable 属性是 16.4 引入的一个相对较新的特性
更新二:复制说明
- 全新安装 Visual Studio 2019
- 创建一个新的控制台项目
- 使用我在原始问题中发布的代码
- 创建 Command 对象后设置断点
- 调试项目 [F5]
- 打开“本地人”窗口。
- 展开 cmd 变量并滚动,直到找到“参数”属性
- 固定参数属性(如更新 I 中所述)
- 停止调试
- 再次启动调试器
- 打开“本地人”窗口。
- 您会看到错误“检索本地值的内部错误”
- 点击“刷新”图标(它是值列右侧的圆形箭头)
- 您会看到错误“表达式评估器中的内部错误”,如原始问题中所述。
更新三(更多没有帮助的实验)
- 我使用了 VS 安装程序中的“修复安装”。
- 我卸载并重新安装了VS。
- 我完全删除了整个 %USER%/AppData/.../VisualStudio 文件夹
解决方案
文件夹中有一个名为“ObjectFavorites.json”的文件
%USER%/文档/Visual Studio 2019/Visualizers
它有以下内容
{
"$schema": "https://aka.ms/vs/debugger-managed-favorites-schema",
"types": {
"System.Data.SqlClient.SqlCommand": {
"favorites": [
"Parameters"
]
}
}
}
删除“参数”行。
您甚至不必停止或重新启动 VS,您可以即时编辑此文件。删除该行并且错误消失后再次启动调试器。
推荐阅读
- javascript - 检查变量是否是函数的最佳方法是什么?
- vagrant - 将 MacOS 更新到 Catalina 后,无法从 vagrant box 访问共享文件夹(过时的文件句柄)
- javascript - 如何在 react-router v5 中通过 history.push 传递对象?
- python - Django Admin 使用 save_model() 在更改(或保存)时加密某些字段的值
- php - PHP MySQL中的分页不限制数据,也不转到下一页
- f# - 如何从 F# 创建 DynamoDB 条目?
- c# - 如何恢复其 Text 属性已被删除且在 Windows 窗体中不可见的 c# 控件
- aws-lambda - 如何在不创建 lambda 函数的情况下从无服务器创建 http 代理 api 网关
- vue.js - 如何在 asp.net core 2.2 和 vue 上使用带有 jwt 身份验证的会话
- php - Yii2如何在搜索模型中添加价格范围过滤器