Изменить и продолжить: «Изменения не разрешены, когда ...» - PullRequest
97 голосов
/ 18 июня 2009

Даже если я создаю чистый проект WinForms, «Редактировать и продолжить» не работает и выдает ошибку:

Изменения не допускаются, когда отладчик подключен к уже запущенному процессу или отлаживаемый код был оптимизирован во время сборки или выполнения.

  1. Параметр «Изменить и продолжить» отмечен в меню «Инструменты» → «Параметры» → «Отладка».
  2. Оптимизация не включена.
  3. Похоже, что не настроен какой-либо управляемый профилировщик.
  4. Я работаю в режиме отладки
  5. Я работаю на 32-разрядном процессоре x64 и Windows XP, но установка цели платформы на x86, а не AnyCpu, не помогает.
  6. Восстановление установки Visual Studio не помогает.

Я также нашел эту статью на веб-сайте MSDN:

Неподдерживаемые сценарии

Редактировать и продолжить недоступно в следующих сценариях отладки:

  • Отладка в Windows 98.

  • Отладка в смешанном режиме (собственный / управляемый).

  • Отладка SQL.

  • Отладка дампа доктора Ватсона.

  • Редактирование кода после необработанного исключения, когда не выбран параметр «Развернуть стек вызовов на необработанных исключениях».

  • Отладка встроенного приложения во время выполнения.

  • Отладка приложения с приложением вместо запуска приложения с помощью «Пуск» из меню «Отладка».

  • Отладка оптимизированного кода.

  • Отладка управляемого кода, когда целью является 64-битное приложение. Если вы хотите использовать Edit и Continue, вы должны установить цель на x86. (Свойства проекта, вкладка «Компиляция», параметр «Расширенный компилятор».).

  • Отладка старой версии вашего кода после того, как не удалось собрать новую версию из-за ошибок сборки.

Но я могу ответить «Нет» каждому пункту в этом списке.

Раньше это работало, но несколько дней назад оно перестало работать, и я не знаю, в чем может быть причина.

Ответы [ 32 ]

56 голосов
/ 28 декабря 2014

Применимые решения

Вот неполный, неупорядоченный список возможных решений, которые можно попробовать, если вы * хотите исправить. Редактировать и продолжить быстро:

  • Убедитесь, что вы находитесь в Режим отладки
  • Убедитесь, что вы не запускаете процесс в смешанном режиме
  • Попробуйте установить целевое значение для ЦП x86 вместо AnyCPU (на компьютерах x64)
  • Снимите флажок Оптимизировать код для Режим отладки в Свойства проекта-> Отладка
  • Снимите отметку Включить оптимизации в Расширенные настройки компилятора
  • (ASP.NET) Проверьте ответ ночного кодера , если это так
  • (ASP.NET) Отметьте этот ответ (по matrixugly) , если это так
  • (ASP.NET) Убедитесь, что на вкладке Интернет (vs2010)
  • (ASP.NET) Перейдите в Свойства> Интернет> Серверы и убедитесь, что Включить и продолжить установлен в Использовать Visual Studio Development Server .
  • (ASP.NET WebAPI) Прежде чем пытаться редактировать его, убедитесь, что вы остановились в методе контроллера с использованием точки останова.
  • Перейдите к Инструменты> Параметры> Отладка> Общие и убедитесь, что Требовать, чтобы исходные файлы точно соответствовали исходной версии , не отмечено.
  • Вы используете Microsoft Fakes? Он запрещает редактирование и продолжение.
  • Убейте все экземпляры *. Vshost.exe , выбрав Дерево завершения процесса в Диспетчере задач . VS восстановит правильный экземпляр.
  • Удалите все точки останова с помощью Отладка-> Удалить все точки останова
  • Включить и продолжить существует как в меню Инструменты> Параметры> Отладка , так и в Параметры проекта . Обязательно проверьте оба места. Редактировать и продолжить не поддерживается с расширенной настройкой Intellitrace.
  • Убедитесь, что Отладочная информация в Свойства проекта> Сборка> Дополнительно> Вывод> Отладочная информация имеет значение Полная
  • Некоторый плагин может мешать. Проверьте, отключив / удалив, а затем повторив попытку других решений.
  • Если вы не уделяете достаточно внимания, ошибка, которую вы получаете, пытаясь исправить это, может измениться на что-то еще, что будет легче диагностировать. Например. Метод, содержащий лямбда-выражение, не может поддерживать редактирование и продолжение.
  • Убедитесь, что системная переменная COR_ENABLE_PROFILING не установлена ​​на 1. Некоторые профилировщики устанавливают это при установке и оставляют так после удаления. Откройте командную строку и введите set, чтобы быстро проверить, не подвержена ли она вашей системе, если это так, удалите переменную или задайте для нее 0:

    • В Windows 8 и выше найдите Система (Панель управления).
    • Нажмите ссылку Расширенные настройки системы .
    • Нажмите Переменные среды .
    • Удалить COR_ENABLE_PROFILING
  • Помните о неподдерживаемых сценариях (как указано в вопросе) и о том, что неподдерживаемые правки .

* под «вы» я имею в виду посетителя страницы, который стучит головой по клавиатуре, чтобы найти решение.

Не стесняйтесь редактировать этот ответ, если у вас есть другие советы!

23 голосов
/ 28 октября 2011

Если вы отлаживаете приложение ASP.NET, перейдите в свойства> web> Серверы и убедитесь, что в разделе «Использовать Visual Studio Development Server» установлен флажок «включить и продолжить».

18 голосов
/ 20 июля 2009

Я наконец-то решил проблему: УДАЛИТЬ Gallio

Gallio, похоже, имеет довольно много грубых краев, и лучше не использовать MbUnit 3.0, а использовать среду MbUnit 2.0, но использовать бегунок gallio, который вы запускаете без установки из установщика (который также устанавливал плагин для Visual Studio) .

Кстати, у меня возникла проблема даже после "отключения" плагина Gallio. Только удаление решило проблему.

PS. Отредактировано nightcoder:
В моем случае отключение TypeMock Isolator (фальшивый фреймворк) наконец помогло ! Редактировать и продолжить теперь работает !!!

Вот ответ от поддержки TypeMock:

После изучения изменений и продолжим выпускать, и разговаривать об этом с Microsoft, мы достигли вывод не может быть решен для изолятора. Изолятор реализует CLR профилировщик, и в соответствии с нашими исследования, когда профилировщик CLR включены и прикреплены, редактировать и Продолжение автоматически отключается. Мне жаль говорить, что это больше не считается ошибкой, а скорее ограничение Isolator.

9 голосов
/ 23 октября 2009

У меня была такая же проблема. Я даже переустановил VS 2008, но проблема не исчезла. Однако, когда я удалил все точки останова, он начал работать.

Debug->Delete All Breakpoints

Я думаю, что это произошло, потому что я удалил страницу aspx, у которой в коде были точки останова, а затем я создал другую страницу с тем же именем. Это, вероятно, смутило VS 2008.

4 голосов
/ 05 августа 2011

Я обнаружил, что хотя в свойствах проекта на вкладке «сборка и отладка» выбрано «Отладка», а все остальные настройки верны, я все равно получаю сообщение, однако после еще нескольких копаний в меню Build выберите Configurations Manager ... и убедитесь, что Debug также выбран в двух местах. пойди разберись ... сколько разных мест им нужно для отладки ?????? несмотря на то, что для Project - Configuration задано Debug, затем в Build - Manager оно не изменилось, поэтому вы изменили там же настройку Project Configuration - снова похоже на проблему с Microsoft .......

4 голосов
/ 14 июня 2011

Если ваша проблема связана с приложением ASP.NET, убедитесь, что у вас есть редактирование и продолжение включено на веб-вкладке (версия 2010) Был также отдельный параметр для отладки ASP.NET в более ранних версиях.

С уважением,

Адам.

4 голосов
/ 03 января 2011

Ни одно из вышеперечисленных решений не сработало для меня (работает на 64x машине).

Наконец я нажал на 'advanced compiler settings' и UNCHECKED 'enable optimizations ', и теперь я могу пошагово просматривать код и редактировать во время отладки.

4 голосов
/ 28 февраля 2013

Следующая стрельба помогла мне с использованием VS2010:

Перейдите в Инструменты, Параметры, Отладка, Общие и убедитесь, что флажок «Требовать, чтобы исходные файлы в точности соответствовали исходной версии» не установлен.

4 голосов
/ 20 августа 2011

Эта проблема связана с настройкой Intellitrace

Если включена функция Intellitrace, убедитесь, что только событие Intellitrace отмечено

В противном случае это не позволит редактировать и продолжить ..

Если вы нажмете на опции Intellitrace, вы увидите предупреждения.

4 голосов
/ 18 июня 2009

Пара вещей для проверки

  • Убедитесь, что ваш компилятор настроен на Отладка против Выпуска
  • Убедитесь, что вы не запускаете смешанный режим
  • Если на 64-битной машине, установите целевое значение CPU на x86, а не на AnyCPU

РЕДАКТИРОВАТЬ

Не думаю, что это должно иметь значение, но убедитесь, что процесс хостинга включен для целевой платформы. Вероятно, не поможет.

Если он воспроизводит для новых проектов, то это может быть что-то еще более тонким. Я бы попробовал следующее.

  • Резервное копирование HKCU: \ Software \ Wow6432Node \ VisualStudio \ 9.0 (возможно, просто переименуйте его)
  • Удалить тот же ключ
  • Попробуйте повторить еще раз
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...