相关疑难解决方法(0)

是什么让Visual Studio调试器停止评估ToString覆盖?

环境:Visual Studio 2015 RTM.(我没有尝试旧版本.)

最近,我一直在调试我的一些Noda Time代码,我注意到当我有一个类型的局部变量NodaTime.Instant(structNoda Time中的一个中心类型)时,"Locals"和"Watch"窗口似乎没有调用它的ToString()覆盖.如果我ToString()在监视窗口中明确调用,我会看到相应的表示,但我只是看到:

variableName       {NodaTime.Instant}
Run Code Online (Sandbox Code Playgroud)

这不是很有用.

如果我更改覆盖以返回一个常量字符串,那么该字符串显示在调试器中,因此它显然能够接收它 - 它只是不想在"正常"状态下使用它.

我决定在一个小的演示应用程序中本地重现这个,这就是我想出的.(请注意,在这篇文章的早期版本中,DemoStruct是一个类,DemoClass根本不存在 - 我的错,但它解释了一些看起来很奇怪的评论......)

using System;
using System.Diagnostics;
using System.Threading;

public struct DemoStruct
{
    public string Name { get; }

    public DemoStruct(string name)
    {
        Name = name;
    }

    public override string ToString()
    {
        Thread.Sleep(1000); // Vary this to see different results
        return $"Struct: {Name}";
    }
}

public class DemoClass
{
    public string …
Run Code Online (Sandbox Code Playgroud)

c# debugging visual-studio-2015

220
推荐指数
1
解决办法
1万
查看次数

Visual Studio 2017在哪里存储其配置?

在VS 2015及更早版本中,设置存储在注册表中,例如HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config.在VS 2017中,为了支持VS的多个实例,根据这篇文章,设置被移出了注册表.

根据这个SO答案,我以前一直在编辑注册表以在Windows处于高对比度模式时强制黑暗主题.现在我想在VS 2017中做同样的事情,但无法找到存储设置的位置,以进行此更改.

这些设置存储在Visual Studio 2017中的哪个位置?

visual-studio high-contrast visual-studio-2017

35
推荐指数
1
解决办法
1万
查看次数

"由于先前的功能评估超时,功能评估被禁用." - 在vs2012

最近我开始研究VS2012.

当我调试我的代码(这是一个SharePoint 2013应用程序)并试图获取变量的值时 - 我一次又一次地得到消息:

Function evaluation disabled because a previous function evaluation timed out.
You must continue execution to reenable function evaluation.
Run Code Online (Sandbox Code Playgroud)

我之前曾在visual studio 2010(适用于SharePoint 2010应用程序)工作过,并且在尝试获取Quick Watch中的变量值时几乎从未收到此消息.

我用Google搜索了错误消息,我发现当尝试获取其动作需要很长时间的函数值时会出现问题,但我并不是想获取函数的值,只是变量,但是我得到了这个错误.

我并不总是在相同的变量上得到错误,而是随机 - 每次都有不同的变量.

是否还有其他人在VS2012中遇到此问题?

我怎么能摆脱它呢?

debugging visual-studio-2012

30
推荐指数
2
解决办法
4万
查看次数

如何增加Visual Studio 2017的可视化器超时

这是以前版本的答案,

但是在版本15(VS2017)中,缺少用于增加NormalEvalTimeoutQuickwatchTimeout的相同注册表.

在此输入图像描述

visual-studio

8
推荐指数
1
解决办法
417
查看次数

Visual Studio 2015 Watch 评估超时

在调试和单步执行代码时,我尝试向监视窗口添加一个方法,该方法需要很长时间来评估(可能需要 20-30 秒,因为它涉及网络连接)。然而,大约 15 秒后,我收到“评估超时”错误。

我发现了以下解决方案,它包括改变注册表值NormalEvalTimeoutHKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger延长超时长度:

如何防止 Visual Studio 调试器可视化器超时?

但是,我的注册表中似乎没有该条目(或任何其他与超时相关的条目)。我还查看了 WOW64 regedit。我试图NormalEvalTimeout从头开始创建条目,但没有效果。

任何想法在哪里可以找到注册表项,或者是否有另一种方法可以使用 VS 2015 执行此操作?谢谢您的帮助。

编辑:这是我拥有的注册表项列表(在 Windows Server 2012 R2 上): 在此处输入图片说明

c# registry visual-studio-debugging visual-studio-2015

6
推荐指数
1
解决办法
6711
查看次数