Подтвердить что ты не робот

Функция редактирования и продолжения перестала работать в Visual Studio 2010

Функция редактирования и продолжения Visual Studio остановлена ​​в Visual Studio 2010, и я не знаю, что вызвало эту проблему.

Я работаю над прикладной программой Windows с помощью С#. Это приложение было первоначально разработано в Visual Studio 2008, а затем обновлено до Visual Studio 2010.

Все работало нормально, включая Edit и Continue, пока я не обновил .NET Framework с 3.5 до 4.0.

Теперь, когда я использую режим отладки, изменение любой строки кода в IDE приводит к следующему сообщению:

Были сделаны изменения, которые невозможно скомпилировать. Выполнение не может продолжаться до тех пор, пока ошибки компиляции исправлены.

На самом деле, нет ошибок компиляции, и я должен перезапустить Visual Studio, чтобы запустить обновления.

Как я могу снова редактировать и продолжать работать?

4b9b3361

Ответ 1

Функция "Изменить и продолжить" не работает с ключевым словом dynamic.

Я попытался удалить метод, который использует параметр dynamic, и преобразованный проект теперь работает в Visual Studio 2010.

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

Ответ 2

В представлении "Проводник решений" щелкните правой кнопкой мыши по каждой ссылке в "Ссылки", выберите "Свойства". В представлении "Свойства" подпишите False в поле Embed Interop Types. Это работает для меня.

Ответ 3

У меня был файл Excel "embed interop types" == true. Когда я изменил его на false, отредактируйте и продолжайте работу.

Ответ 4

Вчера я использовал профилировщик Microsoft, после чего у меня исчезла функция "Изменить и продолжить". Наконец я понял, что после нескольких разочарований мне пришлось выполнить команду VsPerfCLREnv/globaloff из командной строки и перезагрузить компьютер. Теперь у меня есть свое редактирование и продолжение будущего. Кстати, это не имеет никакого отношения к целевой платформе. Он работает с целевой платформой, установленной на любой процессор без каких-либо проблем.

Ответ 5

У меня была эта проблема в Visual Studio 2013 и: -

  • Иногда просто закрытие и повторное открытие решения работает, но когда это не выполняется
  • перезагрузка Visual Studio (закрытие решения, выход из Visual Studio, повторная открывание Visual Studio, повторное открытие решения, повторная попытка отладки с помощью Edit и Continue) исправляет его.

В моем случае у меня не было типов Interop, которые были встроены, и ни один из моих кодов не имел ключевое слово dynamic, и я выполнил полное решение без ошибок. Тем не менее, я запускал, отлаживал и повторно запускал много раз, так что, возможно, это имело какое-то отношение к памяти - потребовалось, чтобы Visual Studio закрылась более чем на одну минуту, за это время диск разбился (предположительно, пейджинг памяти на играть).

Ответ 6

Я бы попробовал очистить все файлы, созданные VS. Поэтому я бы удалил каталоги bin и obj, и я также удалю файлы *.suo и *.user. Поскольку эти файлы сгенерированы автоматически, это не должно влиять ни на что (хотя я, очевидно, сделаю резервную копию всех файлов, если есть какие-то другие файлы, которые были там по ошибке).

Иногда эти файлы могут быть повреждены (обычно это происходило довольно часто в старом VС++ и т.д.), а затем VS может начать действовать очень забавно.

Ответ 7

Я пробовал все вышеперечисленные решения, ни один из них не работал у меня. Однако, когда я удалил папку bin и object в визуальной студии и снова запустил, он начал работать.

Ответ 8

работая с сообществом VS2017, у меня возникла эта отягчающая проблема: если вы портируете существующий проект, тег EmbedInteropTypes может быть еще не в файле.csproj, поиск бесполезен. Если это так, добавьте тег в конец в группу свойств Debug | x86 (или в зависимости от того, что вы используете) в.csproj с текстовым редактором:

до:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\x86\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <DocumentationFile>bin\Debug\MyProject.XML</DocumentationFile>
    <DebugType>full</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>

после:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\x86\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <DocumentationFile>bin\Debug\MyProject.XML</DocumentationFile>
    <DebugType>full</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <Prefer32Bit>false</Prefer32Bit>
    <EmbedInteropTypes>false</EmbedInteropTypes>
  </PropertyGroup>

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

Ответ 9

В моей ситуации кто-то добавил ссылку в проект в список ссылок: в обозревателе решений найдите в [ProjectName]\References для [ProjectName *] и удалите ее.

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

Ответ 10

В VS2013 мне пришлось включить "Использовать управляемый режим совместимости" в параметрах отладки. Я думаю, что это потому, что у меня есть проект .Net 4, ссылающийся на сборку .Net 2.

Для другого проекта в том же решении мне пришлось снять флажок "Определить константу TRACE" в свойствах проекта.

Ответ 11

В Visual Studio 2015 я удалил папку .vs(где находится новый файл стиля .suo), удалил все bin и obj, а также удалил Resharper 2015. Изменить и продолжить.

(сторона примечания: intellisense теперь показывает автозаполнение почти мгновенно, в то время как это занимало от 2 до 5 секунд до, возможно, повторную ошибку и, возможно, несвязанный...)

Ответ 12

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

  • Удалите папку obj
  • Удалите папку bin. Вы можете копировать и вставлять библиотеки, файлы данных и т.д. Обратно в папку после удаления.
  • Из VS, меню Решения → Чистое решение.

Это работает для меня несколько раз.

Ответ 13

Считая вышеизложенное, мой проект пользовательского интерфейса имеет Shell32 с "Embed Interop Types" == true. Я изменил его на false, и "edit and continue" начал работать.

Ответ 14

В представлении "Проводник решений" щелкните правой кнопкой мыши по каждой ссылке в "Ссылки", выберите "Свойства". В представлении "Свойства" подпишите False в поле Embed Interop Types. Это сработало для меня.

Ответ 15

Для тех, кто все еще получает эту ошибку даже с Visual Studio 2017

Нет динамических/переносных библиотек классов/пакетов Nuget или проблем с зависимостями. Нет ошибок или предупреждений, выделенных Visual Studio.

После нескольких часов, проведенных во всех решениях, размещенных в этом и других темах и веб-страницах, единственным решением, которое работало для меня, была регистрация, удаление Рабочая область и Map&Get снова.

Чтобы удалить рабочую область, Source controlAdvancedWorkspaceRemove.

Я использую сообщество Visual Studio 2017 в актуальном состоянии и после относительно новой установки на новом компьютере (одна неделя и несколько часов работы).


Методы, которые я тестировал без успеха до решения выше

  • Убедитесь, что параметр "Редактировать и продолжить" включен в параметрах Visual Studio. Отключить и пометить его снова.
  • Удаление bin и obj для всего проекта в решении
  • Очистите и перестройте все, перезапустите VS/reboot в сочетании с приведенным выше
  • Проверка параметров компиляции и пакетов Nuget и совместимость с dll для проектов, вдохновленных this
  • Разгрузка проектов в различных комбинациях для проверки проблем с зависимостями или других проблем (вдохновлено this)
  • Удаление решения для его повторной загрузки (без удаления рабочей области)
  • Знак False для вставки типов взаимодействия
  • Установите <_ResolveReferenceDependencies> в true, как описано здесь
  • Комбинации вышеперечисленного с перезапуском VS и перезагрузки

После этого я сделал регистрацию и загрузил решение на другой машине с той же версией Visual Studio (Сообщество 2017). Поскольку я не получил Редактировать & Продолжить выпуск там, я пошел на удаление рабочей области.

Ответ 16

В моем случае, что работало, было снятие флажка "Требовать, чтобы исходные файлы соответствовали исходной версии" в параметрах " Отладка". VS Community 2017 здесь.

Ответ 17

Для меня это было вызвано тем, что Nuget не загрузил пакет (построенный для Net Framework) в проект Net Standard, на который ссылались. Нугет вошел в бесконечный цикл (смотрите в окне вывода).

Решение состояло в том, чтобы отключить настройку "автоматического восстановления пакетов": https://developercommunity.visualstudio.com/content/problem/26638/nuget-infinite-loop.html

для доступа к этому параметру " Сервис"> "Параметры"> "Диспетчер пакетов NuGet"> "Общие"

Ответ 18

Мне пришлось снять флажок "Включить собственное редактирование и продолжить" в Инструменты → Параметры → Отладка → Общие:

enter image description here

Ответ 19

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

Из Github:

"Я воспроизвел эту проблему на смеси проектов VB и С# с [assembly: AssemblyVersion (1.2.3. *")]. Как только проект VB ссылается на проект С# с этим параметром, все начинает разрушаться. Похоже, у него та же проблема с другой стороны. "-rhuijben

https://github.com/dotnet/roslyn/issues/28224

(Риск быть помеченным, кажется, мы страдали от проблем VS Edit и Continue более десяти лет. Меня шокирует, что команда Microsoft Visual Studio не позаботилась о том, чтобы помочь разработчикам, предоставляя более подробную информацию, когда это происходит)

Ответ 20

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

Сервис → Настройки импорта и экспорта → Сбросить все настройки

решил это

Ответ 21

В VS 2015 эта ошибка была вызвана пакетом nuGet, который я недавно установил. Удалив этот пакет и переустановив, исправлена ​​ошибка.