【问题标题】:Visual Studio debugger is out of sync with my codeVisual Studio 调试器与我的代码不同步
【发布时间】:2019-07-19 19:53:18
【问题描述】:

我修改了一些代码并设置了一个断点,但是当调试器遇到该断点时,它会发疯并运行旧代码!

这是原始代码:

/// <summary>
/// Creates a new <see cref="CommaSeparatedValue"/> for the specified values.
/// </summary>
/// <param name="values"></param>
public CommaSeparatedValue(params object[] values)
{
    List<string> list = new List<string>();
    foreach (var value in values)
    {
        if (value is IEnumerable)
        {
            foreach (var item in (IEnumerable)value)
            {
                list.Add(Scrub(item));
            }
        }
        else
        {
            list.Add(Scrub(value));
        }
    }

    _List = list;
}

我把它改成什么:

/// <summary>
/// Creates a new <see cref="CommaSeparatedValue"/> for the specified values.
/// </summary>
/// <param name="values"></param>
public CommaSeparatedValue(params object[] values)
{
    List<string> list = new List<string>();
    foreach (var value in values)
    {
        if (value is IEnumerable && !(value is string)) // !!! - I changed this line here
        {
            foreach (var item in (IEnumerable)value)
            {
                list.Add(Scrub(item));
            }
        }
        else
        {
            list.Add(Scrub(value));
        }
    }

    _List = list;
}

我在我修改的行上设置断点(检查字符串值),当调试器命中该行时,它会忽略我添加的部分并继续运行到“if”块,即使value 变量是一个字符串。

如果重要的话,这段代码是从 MSTest 单元测试中运行的。

【问题讨论】:

  • 在黑暗中拍摄,但您是否尝试过查看您的 Visual Studio 是否有任何更新?我知道如果我有一段时间没有更新它,我的行为有时会很奇怪。
  • 我有一种感觉,当您正在调试的项目在您修改代码后没有构建时,我看到了这种行为。查看配置管理器并确保选中“构建”。
  • 进行清理,然后重建。
  • 无法在 MsTest(.net core) 项目模板中重现相同的问题。请:1。确保您处于调试模式并且不要检查优化代码为调试模式。(Project=>Properties=>Build=>优化代码) 2.在调试test explorer中的测试项目之前重建项目@跨度>
  • @peterG 啊哈,你是对的 - 单元测试项目不是解决方案构建的一部分!您为什么不将您的评论作为答案发布,以便可以解决此帖子? :)

标签: c# unit-testing debugging mstest visual-studio-2019


【解决方案1】:

如果由于某种原因在您运行项目之前没有构建项目,因此调试器正在运行的代码不再与您正在查看的源代码相同时,就会发生这种情况。查看配置管理器并确保检查了您正在使用的配置的“构建”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 2021-01-19
    相关资源
    最近更新 更多