it-swarm.com.ru

Изменить и продолжить: "Изменения не разрешены, когда ..."

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

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

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

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

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

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

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

  • Смешанная (отлаженная/управляемая) отладка.

  • Отладка SQL.

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

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

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

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

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

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

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

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

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

92
nightcoder

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

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

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

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

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

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

18
Pejvan

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

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

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

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

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

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

49
beppe9000

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

22
viggity

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

Debug->Delete All Breakpoints

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

9
Amer

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

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

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

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

4
KuldeepVerma

Пару вещей, чтобы проверить

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

ПРАВКА 

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

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

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

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

4
RAL

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

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

4
JayW

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

С Уважением,

Адам.

4
Adam

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

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

4
Protector one

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

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

Постскриптум Я в Visual Basic .Net с Visual Studio 2010

3
Samuel

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

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

3
Vinay

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

2
Richard Hein

У меня была эта проблема в Microsoft Visual Studio 2008, и решение легко. когда вы запускаете свой проект, пожалуйста, установите в режиме «Отладка», а не «Выпуск». Решение другого человека может быть полезным.

2
user2412450

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

1
Greg

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

1
ashkan_jami

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

Убедитесь, что ваша Отладочная информация установлена ​​на «полный» в первую очередь!

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

1
Guy Danus

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

1
pbalaga

у меня получилось снять галочку «Использовать режим управляемой совместимости» под

Сервис -> Параметры -> Отладка

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

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

1
B. Cafaro

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

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

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

1
stevebot

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

0
jlo-gmail

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

0
FRK

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

0
Yuriy Vikulov

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

0
Ahmad Aghazadeh

Для меня это происходило после того, как я достиг точки останова, сделал некоторые изменения, затем продолжил пошаговое выполнение кода, а затем, наконец, нажал F5 или «Продолжить», чтобы добраться до конца и выйти из моего блока кода. 

После попытки выбрать опцию «удалить все точки останова» (Ctrl + Shift + PrtScn и OK в приглашении) и выполнить команду «Перестроить все» в журнале ошибок все равно возникла ошибка, связанная с моим DLL для моего проекта, который не загружается ... "Невозможно применить изменения, x.DLL не загружен". После перезапуска Visual Studio все снова было в порядке. Для меня это оказалось просто так. 

Другие вещи у меня не сработали, например: «Требовать, чтобы исходные файлы точно совпадали с исходной версией», проверяли до и после того, как все снова заработало, и нацеливание на «Любой ЦП» на моей машине с x64 тоже подойдет ( не нужно указывать x86 или x64). Я включил «Включить редактирование и продолжить» в разделе «Инструменты»> «Параметры»> «Отладка» и в настройках вкладки «Свойства проекта»> «Веб».

0
vapcguy

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

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

0
Sanjeev Singh

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

Я нажал «Разгрузить» в проекте базы данных, и теперь все работает хорошо.

0
Adam

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

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

0
Ajay

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

0
Nieksa

вставлять типы взаимодействия Visual Studio должен быть установлен в false

0
Wilma Fingerdoo