Функция редактирования и продолжения перестала работать в Visual Studio 2010 - PullRequest
42 голосов
/ 24 января 2011

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

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

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

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

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

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

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

Ответы [ 20 ]

43 голосов
/ 20 мая 2011

В представлении Solution Explorer щелкните правой кнопкой мыши по каждой ссылке на References и выберите Properties. В представлении «Свойства» установите флажок «Ложь» в поле «Типы встроенных взаимодействий». Это работает для меня.

20 голосов
/ 24 января 2011

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

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

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

5 голосов
/ 22 сентября 2012

Вчера я использовал профилировщик Microsoft, после чего моя функция «Редактировать и продолжить» исчезла. После нескольких часов разочарования я наконец понял, что мне нужно выполнить команду VsPerfCLREnv / globaloff из командной строки и перезагрузить компьютер. Теперь у меня есть мой Редактировать и продолжить будущее. Кстати, это никак не связано с целевой платформой. Это работает с целевой платформой, установленной на Любой процессор без каких-либо хлопот.

5 голосов
/ 13 июня 2012

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

4 голосов
/ 29 мая 2014

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

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

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

2 голосов
/ 29 июня 2014

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

2 голосов
/ 09 мая 2018

работа с сообществом 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>

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

2 голосов
/ 24 января 2011

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

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

1 голос
/ 08 января 2014

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

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

1 голос
/ 05 августа 2014

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

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

...