【问题标题】:Cannot evaluate conditional breakpoint in Visual Studio 2017无法在 Visual Studio 2017 中评估条件断点
【发布时间】:2019-05-16 16:51:57
【问题描述】:

我在 Visual Studio 2017 中遇到了一个非常令人沮丧的错误

我正在通过 NUnit 测试运行代码并得到以下错误

断点条件未能执行。
条件是“值 == 22”。
返回的错误是“评估方法 System.Decimal.op_Equality() 调用本机方法 System.AppDomain.GetId()。
不支持在此上下文中评估本机方法。'。
点击确定在此断点处停止

有人可以帮忙吗?我尝试过启用和禁用托管兼容性。

如果我关闭了管理兼容性,我将无法调试任何东西。

public decimal MyValue
{
    get => _value;
    set
    {
        if (_value == value)
        {
            return;
        }

    _value = value;
    HasChanged = true;
}

保罗

【问题讨论】:

  • 试试decimal.Equals() 代替== 运算符?
  • 断点条件执行失败。条件是'(decimal.Equals(22M))'。返回的错误是“错误 CS0120:非静态字段、方法或属性 'decimal.Equals(decimal)'需要对象引用”。单击“确定”在此断点处停止。
  • 我试过 value.Equals(22) 并得到同样的错误
  • 只需更改代码添加if (value == 22) { /* empty line for breakpoint */}临时...

标签: c# visual-studio-2017


【解决方案1】:

Visual Studio 的开发者社区中有多个类似此问题的报告。在其中之一中,它被称为;

我们已在即将发布的 Visual Studio 2019 预览版中解决了该问题。感谢您的反馈!

https://developercommunity.visualstudio.com/content/problem/314822/the-condition-for-a-breakpoint-failed-to-execute-e.html

https://developercommunity.visualstudio.com/content/problem/377921/evaluation-of-native-methods-in-this-context-is-no.html

调试器中的这个错误似乎存在一年多

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 2021-05-15
  • 2017-03-04
相关资源
最近更新 更多