Отладчик Visual Studio не синхронизирован с моим кодом

Я изменил код и установил точку останова, но когда отладчик достигает этой точки останова, он сходит с ума и все равно запускает старый код!

Вот исходный код:

/// <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;
}

Я установил точку останова на строке, которую я изменил (проверив строковое значение), и когда отладчик достигает этой строки, он игнорирует часть, которую я добавил, и продолжает работать в блоке «если», даже если переменная value является строкой.

Если это имеет значение, этот код запускается из модульного теста MSTest.

Снято в темноте, но пытались ли вы узнать, есть ли какие-либо обновления в вашей Visual Studio? Я знаю, что мой иногда ведет себя странно, если я не обновлял его какое-то время.

Andrew Reese 19.07.2019 21:57

У меня такое ощущение, что я видел такое поведение, когда проект, который вы отлаживаете, не создается после того, как вы изменили код. Загляните в Диспетчер конфигураций и убедитесь, что установлен флажок «Сборка».

peterG 19.07.2019 22:07

Сделайте очистку, затем перестройте.

user47589 19.07.2019 22:32

Не удается воспроизвести ту же проблему в шаблоне проекта MsTest (.net core). Пожалуйста: 1. Убедитесь, что вы находитесь в режиме отладки и не устанавливайте флажок Оптимизировать код для режима отладки. (Проект => Свойства => Сборка => Оптимизировать код) 2. Пересоберите проект перед отладкой тестового проекта в test explorer

LoLance 22.07.2019 08:12

@peterG ага, вы правы - проект модульного тестирования не был частью сборки решения! Почему бы вам не опубликовать свой комментарий в качестве ответа, чтобы этот пост можно было решить? :)

ekolis 23.07.2019 17:52

@ekolis На самом деле недостаточно быть ответом, а не комментарием, но если вы настаиваете. . .

peterG 24.07.2019 18:36

@peterG Это ответило на мой вопрос, поэтому я думаю, что это квалифицирует его как ответ :)

ekolis 24.07.2019 19:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
802
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это может произойти, когда по какой-то причине ваш проект не собирается до его запуска, так что код, выполняемый отладчиком, больше не совпадает с исходным кодом, который вы просматриваете. Загляните в Диспетчер конфигураций и убедитесь, что для используемой конфигурации установлен флажок «Сборка».

Другие вопросы по теме