Редактируйте и продолжайте:“Изменения не допускаются, когда...”

StackOverflow https://stackoverflow.com/questions/1010213

Вопрос

Даже если я создам чистый проект WinForms, Edit and Continue не будет работать и выдаст мне сообщение об ошибке:

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

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

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

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

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

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

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

  • Отладка SQL.

  • Отладка Dr .Свалка Ватсона.

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

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

  • Отладка приложения с помощью Attach to вместо запуска приложения с помощью Start из меню Debug.

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

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

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

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

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

Это было полезно?

Решение

Наконец-то я добрался до решения проблемы: УДАЛИТЬ Gallio

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

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

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

Вот ответ из службы поддержки TypeMock:

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

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

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

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

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

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

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

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

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

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

Debug->Delete All Breakpoints

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

Пара вещей, которые нужно проверить

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

Редактировать

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

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

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

Если вас беспокоит приложение ASP.NET убедитесь, что у вас включено редактирование и продолжить на вкладке веб (vs2010).Также была отдельная настройка для ASP.NET отладки в более ранних версиях.

С уважением,

Адам.

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

Наконец я нажал на 'advanced compiler settings' и НЕПРОВЕРЕННЫЙ 'enable optimizations" и теперь я могу пошагово просматривать код и редактировать его во время отладки.

Я обнаружил, что, хотя на вкладке "Свойства проекта" "Сборка и отладка" установлено значение "Отладка", а все остальные настройки верны, я все равно получаю сообщение, однако, покопавшись еще немного в меню "Сборка" выберите "Менеджер конфигураций"...и убедитесь, что там также выбрано значение Debug в двух местах.поди разберись ... сколько разных мест им нужно для настройки debug??????несмотря на то, что вы настроили Project - Configuration на Debug, затем в Build - Manager это не изменилось, поэтому вы также изменили тот же параметр, что и конфигурация проекта, - похоже, снова проблема Microsoft.......

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

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

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

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

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

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

"Редактировать и продолжить", если она включена, позволит вам редактировать код только тогда, когда он находится в режиме прерывания:например ,приостановив выполнение из-за исключения или достигнув точки останова.

Это подразумевает, что вы не могу редактируйте код, когда выполнение не приостановлено!Когда дело доходит до отладки (ASP.NET) веб-проектов, это очень неинтуитивно, поскольку вы часто хотели бы вносить изменения между запросами.В это время код, который вы (вероятно) отлаживаете, не запущен, но он также не приостановлен!
Чтобы решить эту проблему, вы можете нажать "Разбить все" (или нажать Ctrl+Альт+Перерыв).В качестве альтернативы, установите где-нибудь точку останова (напримерв вашем Page_Load событие), затем перезагрузите страницу, чтобы выполнение приостанавливалось при достижении точки останова, и сейчас вы можете редактировать код.Даже код в .cs Файлы.

Для меня, по причине, которую я не понимаю, параметр "Генерировать отладочную информацию" в "Расширенных настройках компилятора" был установлен на "только pdb" вместо "Полный".

По умолчанию для этого параметра всегда установлено значение "Full", но таинственный полтергейст изменил этот параметр прошлой ночью.:)

P.S.Я на Visual Basic .Net с Visual Studio 2010

У меня была эта проблема в Microsoft Visual Studio 2008, и решение простое.когда вы запускаете свой проект, пожалуйста, установите режим "Debug", а не "Release".Решение "Другие люди" может быть полезным.

Это происходит, когда отладчик не достиг точки останова или вы не нажали Break All (пауза).Это не могло быть так просто, не так ли?

В ошибке указано, что возможной причиной является:"отлаживаемый код был оптимизирован во время сборки или выполнения".Перейдите в Свойства проекта-> Отладка и снимите флажок Оптимизировать код для режима отладки.

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

Некоторые вещи, которые, казалось, помогли при использовании VS2010:

  • перейдите в "Инструменты", "Параметры", "Отладка", "Общие" и убедитесь, что флажок "Требовать, чтобы исходные файлы точно соответствовали исходной версии" снят.
  • несколько .vshost.exe экземпляры могут быть оставлены, например,отсоединение отладчика VS от остановленного процесса.Это также будет мешать работе с точками останова и компиляции.Используйте диспетчер задач, вкладка Процессы, чтобы уничтожить все экземпляры .vshost.exe щелкнув правой кнопкой мыши каждый экземпляр и выбрав Завершить дерево процессов.VS создаст новый экземпляр.

Я удалил набор данных из своего проекта, потому что я им не пользовался.После этого я мог изменять программу при отладке.

Я внес все изменения, упомянутые в каждом другом ответе, и ни одно из них не сработало.Чему я научился? Включить и продолжить существует как в меню Инструменты > Параметры > Отладка, так и в настройках проекта.После того, как я проверил оба варианта, у меня сработали Enable и Continue.

Я столкнулся с этим сегодня - оказывается, если для отладочной информации установлено значение только pdb (или, я бы предположил, нет), это помешает редактированию и продолжению работы.

Сначала убедитесь, что ваша отладочная информация установлена на "полную"!

Свойства проекта> Сборка> Дополнительно> Вывод> Информация об отладке

что сработало для меня, так это снять флажок "Использовать управляемый режим совместимости" в разделе

Инструменты -> Параметры -> Отладка

TBN:установка или снятие флажка "Требовать, чтобы исходный файл точно соответствовал исходной версии", похоже, не влияет на E & C

Надеюсь, это может помочь.

Включите редактирование и продолжайте работать только с IIS Express.Не работайте на локальном ISS или внешнем хостинге.

В моем случае помогает просто сброс настроек отладчика по умолчанию и настройка IntelliTrace-> только события intellytrace

типам встроенного взаимодействия visual Studio должно быть присвоено значение false

У меня это произошло в связанном файле класса.Остальная часть проекта разрешала E & C, но я получил ту же ошибку при редактировании связанного файла.Решение состояло в том, чтобы разбить связанный файл на его собственный проект и ссылаться на проект.

Я столкнулся с той же проблемой.Моя проблема заключалась в том, что я мог изменить файл, но не другой (оба находятся в одном проекте).Позже я обнаружил, что файл, который я не смог изменить, также был частью другого проекта.Что другой проект (модульный тест) не был загружен, и умный VS debugger показывает ошибку, что сборка для данного файла не была загружена, и изменения не разрешены.Как странно!

Следовательно, мне пришлось выгрузить проект модульного тестирования и продолжить отладку EnC.

У меня был проект базы данных в решении, который остановил редактирование проекта webforms.

Я нажал "Выгрузить" в проекте базы данных, и теперь все работает нормально.

Для VS2017 это может помочь удалить файл .suo в вашем решении, у меня это сработало.:)

Я столкнулся с той же проблемой в Visual Studio 2005.Моя конфигурация - 64 бита.Это нормально работало в одном из решений VS, но не в другом.Я заметил , что я Только включил "Включить редактирование и продолжить" для проекта, в котором я хотел внести изменения в режиме отладки.Это, наконец, решилось для меня, когда я выбрал "Включить и продолжить" для моего запуск проекта также.

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

Кажется нелогичным, но единственным способом было отключить редактирование и продолжить из опций VS 2017...Затем AspNet edit и continue начали работать...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top