Как включить редактирование файлов в режиме отладки Visual Studio?


144

Есть ли способ включить редактирование файлов при отладке в Visual Studio? Я снял флажок «Требовать, чтобы исходный файл точно совпадал с исходной версией». Это не имеет значения. Я должен прекратить отладку для редактирования файлов. Очень надоедливый. Я включил Редактировать и продолжить. Тот же результат. Я отключил Редактировать и продолжить - тот же результат.


Я не видел, чтобы вы редактировали свой вопрос. Вы можете исправить это с помощью быстрой переустановки.
Secko

12
@ Secko Нет такой вещи, как «быстрая переустановка», когда мы говорим о Visual Studio ...
Zero3

@ Zero3 В свое время, около 16 лет назад, когда я использовал его около (int) 1999 - (int) 2000. Не использовал это в течение (долгого) времени.
Секко

Настоящая проблема здесь заключается в том, что параметр «Редактировать и продолжить» в Visual Studio не позволяет редактировать и продолжать . Скорее, это странная функция, которая позволяет вам редактировать код, а затем фактически изменять исполняемый код, чтобы он соответствовал вашему редактированию, и отлаживать оттуда. Даже если бы это было полезно, это редко работает. Это должно было называться что-то вроде «редактировать и перекомпилировать на лету». Включение его выключение позволяет реально изменить свой код в то же время отладки кода скомпилированные.
MGOwen

Ответы:


234

Насколько я знаю, вы можете снять флажок «Редактировать и продолжить».

Сервис -> Параметры -> Отладка -> Изменить и продолжить> Включить редактирование и продолжить (снимите флажок)


60
Это было решением для меня - я понятия не имею, почему проверка UN «Редактировать и продолжить» позволила бы мне редактировать ... кажется нелогичным. Во всяком случае, я бы отметил это как ответ.
Сэм Шутте

7
Не интуитивно, но эффективно.
Милн

2
Это реагирует по-разному, если бизнес-уровень разделен на отдельный проект в рамках решения. До того, как он был разделен, я мог без проблем редактировать классы во время отладки. К сожалению, это решение не решено для меня в этой ситуации (я использую VS2013)
Раддерз

18
В Visual Studio 2015 я нашел этот параметр внизу Debugging-> General.
Ноль3

13
Если вы пытаетесь это сделать, но «Включить редактирование и продолжить» неактивны, просто прекратите отладку и вернитесь к параметрам.
Равви

19

Расширение на правильный ответ Рида.

В режиме отладки при редактировании файла используется функция, известная как «Редактировать и продолжить» (обычно сокращенно ENC). Это позволяет пользователям изменять свою программу во время ее работы в отладчике.

Когда ENC включен, пользователям разрешено выполнять ограниченный набор изменений в своем файле. Следующее действие, которое продолжит выполнение программы (F10, F5 и т. Д.), Приведет к тому, что изменения будут применены к работающей программе. Если это удастся, выполнение программы продолжится с применением нового кода.

Отладчик не разрешает редактирование файла, если ENC не включен.

Есть несколько причин, по которым ENC может быть отключен на вашем компьютере

  • Некоторые профили не включают ENC по умолчанию, и он должен быть включен явно
  • Возможно, вы работаете в 64-битной ОС и ваше приложение .Net установлено на «Любой процессор». ENC недоступен для 64-разрядных (ограничение CLR). Вы должны будете установить приложение обратно на x86, чтобы ENC работал

8
Что, если вас не волнуют «Редактировать и продолжить», и вы просто хотите написать код во время работы приложения, чтобы вы могли видеть, что нужно сделать, пока вы это делаете? Это абсолютно нереально, VS навязал бы это искусственное ограничение. Это не так, как он должен читать исходные файлы во время работы. Нет технической причины, по которой он должен блокировать исходные файлы. Xcode без проблем позволяет вам писать код во время работы приложения. Изменения просто не применяются до следующего запуска. Неужели нет никакого способа сделать это в VS?
devios1

1
Если я отключу « Редактировать и продолжить», это позволит мне редактировать файлы .cs во время работы приложения, но все равно блокирует файлы .xaml. Я ищу способ полностью отключить эту абсурдную блокировку.
devios1

7
Он даже не позволит мне добавить файл в проект во время работы приложения! Я не шучу, 20-30 раз в день я пытаюсь что-то сделать, и VS полностью предотвращает это. После недолгого «недоразумения» я понимаю, что приложение отлаживается, и мне нужно остановить то, что я делал, убить приложение, а затем повторить попытку. Я не могу работать в таких условиях, и я действительно поражен, что люди не боятся этого. Это действительно убивает мою производительность и заставляет меня взбираться на стену. Должен быть способ это исправить!
devios1

1
@ devios1 Что-то, что я часто делаю, это просто запускаю без отладки (ctrl + f5), что нормально, если вам не нужны точки останова или что-то еще.
Бинки

@ devios1 То же самое. Я надеюсь, что кто-то (может быть, я) найдет время, чтобы закончить это расширение. github.com/AndreasFurster/pause-edit-and-continue
Пол

8
  • Проверка ООН «Включить редактирование и продолжить» ( Tools -> Options -> Debugging -> Edit and Continue > Enable Edit and Continue)
  • Создайте свое приложение.
  • Запустить его.
  • Останови это.
  • RE проверьте «Включить редактирование и продолжить».
  • Создайте свое приложение.
  • Запустить его.
  • Попробуйте отредактировать файлы во время отладки.

Это сработало для меня. Я считаю, что это может быть ошибка или проблема синхронизации с Visual Studio 2015.


1
Уважаемый downvoter, хорошая практика оставлять комментарии для ПОЧЕМУ вы отрицаете ответ.
Франсуа Бота

Это не решило для меня, однако ответ с самым высоким голосом ниже сделал.
Кайран

6

Вам необходимо включить Редактировать и продолжить .


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

@marcc: и многое другое, поэтому я указал на документы. Полный список неподдерживаемых изменений см. В разделе «Неподдерживаемые сценарии» по следующему адресу: msdn.microsoft.com/en-us/library/ms164927%28VS.80%29.aspx
Рид Копси,

4
Ответ Seckos (лучший рейтинг) сработал для меня (VS2015) и является полной противоположностью вашего ответа.
alrts

6

Из MSDN

Чтобы включить / отключить Редактировать и продолжить

  • Откройте страницу параметров отладки (Инструменты / Параметры / Отладка). манускрипт

  • вниз, чтобы изменить и продолжить категорию. Чтобы включить, выберите Включить редактирование

  • и продолжить флажок. Чтобы отключить, снимите флажок. Заметка. ...

  • Нажмите ОК.


5

обычно редактирование файла во время отладки возможно, когда вы достигли точки останова (и только тогда).

Однако есть некоторые ограничения: -ваш новый код должен компилироваться -вы не можете изменить код в функции, которая содержит лямбда-выражения



2

Если вы включили Редактировать и Продолжить и используете C #, вы можете редактировать файл только в том случае, если отладчик остановился либо через точку останова, либо вы взломали приложение вручную через «Разбить все». Вы все еще не сможете редактировать некоторые файлы, напр. XAML файлы в приложении WPF, но это должно решить большинство проблем.


1

Если ваш источник происходит из декомпилированной библиотеки DLL, обратите внимание, что декомпиляторы могут добавить инструкцию IgnoreSymbolStoreSequencePoints в assemblyinfo.cs:

[Assembly: Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Эта строка должна быть удалена для загрузки pdb-файла, редактирования и продолжения работы.


1

Снятие галочки с нижеприведенного варианта работы для меня

Инструменты> Опция> Отладка> Общие> Включить редактирование и продолжить

введите описание изображения здесь

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


1

Я пробовал этот способ, и это работает для меня. Перейдите в файл CSProj или VbProj -> Выберите Сервер разработки Asp.Net / IIS Express -> Отладчики-> Включить редактирование и продолжение-> Сохранить и запустить.

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.