Visual Studio 2019:调试期间“本地”面板中的错误 - “检索本地值的内部错误”

Chr*_*igl 3 debugging visual-studio visual-studio-2019

原始问题

(有关复制说明,请参阅更新 II)

我最近在调试会话期间使用了 Visual Studio 2019。我将“SqlCommand”类的一些属性固定为“收藏夹”。从那一刻起,我在“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;
}
Run Code Online (Sandbox Code Playgroud)

更新我

这是我正在谈论的固定功能。我在 SqlConnection 对象的 WorkstationId 属性示例中展示了它(因为它在 SqlCommand 上不再起作用)。我相信我在命令文本和参数属性上使用了它。pinnable 属性是 16.4 引入的一个相对较新的特性

固定属性

更新二:繁殖说明

  1. 全新安装 Visual Studio 2019
  2. 创建一个新的控制台项目
  3. 使用我在上面原始问题中发布的代码
  4. 创建 Command 对象后设置断点
  5. 调试项目[F5]
  6. 打开“本地”窗口。
  7. 展开 cmd 变量并滚动,直到找到“Parameters”属性
  8. 固定参数属性(如更新 I 中所述)
  9. 停止调试
  10. 再次启动调试器
  11. 打开“本地”窗口。
  12. 您看到错误“检索本地值的内部错误”
  13. 点击“刷新”图标(它是值列右侧的圆形箭头)
  14. 您会看到原始问题中描述的错误“表达式计算器中的内部错误”。

更新三(更多没有帮助的实验)

  • 我使用了 VS 安装程序中的“修复安装”。
  • 我卸载并重新安装了VS。
  • 我完全删除了整个 %USER%/AppData/.../VisualStudio 文件夹

Chr*_*igl 8

文件夹中有一个名为“ObjectFavorites.json”的文件

%USER%/Documents/Visual Studio 2019/Visualizers

它有以下内容

{
  "$schema": "https://aka.ms/vs/debugger-managed-favorites-schema",
  "types": {
    "System.Data.SqlClient.SqlCommand": {
      "favorites": [
        "Parameters"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

删除“参数”行。

您甚至不必停止或重新启动 VS,您可以即时编辑此文件。删除该行并且错误消失后,再次启动调试器。