Visual Studio отображает ошибки, даже если проекты строятся


У меня проблема с Visual Studio на решении C#. Он отображает полностью случайные ошибки, но проекты строятся. Прямо сейчас у меня есть 33 файла с ошибками, и я вижу красные волнистые линии во всех из них.

Я попытался очистить / перестроить решение, закрыть Visual Studio и даже перезагрузить компьютер. Я также сделал все шаги, описанные в разделе отладка выполняется даже с ошибками компилятора в Visual Studio. Я могу изменить .cs файлы, и я вижу изменения в решение.

кто-нибудь имеет представление о том, почему он это делает?

20 180

20 ответов:

вот коллекция популярных ответов. Upvote ОП ответа, если это помогло вам:

Вариант 1: Очистить, построить и обновить ( @Mike Fuchs)

Как @Mike Fuchs упомянуто, попробуйте следующие операции:

в меню Build > Clean Solution

затем построить его:

в меню Build > Build Solution

и, наконец, Обновить:

Refresh Button

Вариант 2: Очистить, закрыть, перезапустить и построить ( @ Pixel)

Как @ Pixel упомянуто, попробуйте следующую последовательность операций:

  1. очистить решение
  2. Закрыть Visual Studio
  3. Открыть Visual Studio
  4. построить решение

Вариант 3: Очистить кэш ReSharper (мой оригинальный вариант)

Если у вас есть ReSharper, попробуйте очистить кэш ReSharper:

в меню ReSharper > параметры > окружающая среда > общие > очистить кэш

и отключение и повторное включение ReSharper:

в меню Tools > Options > ReSharper > General > Suspend / Restore

Вариант 4: Удалить .suo file (@Neolisk)

Как @Neolisk упомянул, удалив .файл suo может решить вашу проблему. Для Visual Studio 2015 этот файл находится по адресу:

[пути решения]/.vs/[имя решения]/v14/.СУО

и для Visual Studio 2017:

[пути решения]/.vs/[имя решения]/v15/.СУО

обратите внимание, что .vs каталог скрыт.

Вариант 5: выгрузка и перезагрузка проекта ( @TTT)

Как @TTT упоминалось, попробуйте выгрузить проект, который вызывает проблемы:

в обозревателе решений щелкните правой кнопкой мыши проект, выгрузить проект.

и перезагрузить его

в обозревателе решений щелкните правой кнопкой мыши проект, перезагрузите проект.

Вариант 6: выгрузка и перезагрузка проекта ( @Guilherme)

Как @Guilherme упомянул, попробуйте удалить и добавить ссылка на "Microsoft.CSharp " из проектов, которые имеют проблемы.

в обозревателе решений разверните проект, разверните "ссылки", щелкните правой кнопкой мыши на " Microsoft.CSharp" и "удалить".

затем щелкните правой кнопкой мыши на ссылки > добавить ссылку, выберите "Microsoft.CSharp " из списка и нажмите кнопку ОК

Очистка кэша Решарпера не помогло в моем случае, пробовал приостановить/восстановить, а также ремонт Resharper, используя последнюю загрузку с сайта JetBrains - ни один из них не помог. Это после того, как я попытался закрыть/снова открыть VS, перезагрузить машину, повторить, построить/перестроить и их комбинацию.

интересно, что приостановка Resharper, казалось, решила проблему после 2-й перезапуск VS, но он вернулся после того, как я включил Resharper

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

поэтому я удалил скрытые .СУО файл на том же уровне папки с решением, и он волшебным образом решил все красные.

Примечание-для Visual Studio 2015,.СУО в .vs / [имя_решения] / v14 скрытые папки.

я очистил решение, закрыл VS, снова открыл его, построил решение, и красные неразрешенные линии были очищены и успешно построены.

tldr; выгрузить и перезагрузить проблемный проект.

когда это происходит со мной, я (раньше) пытаюсь закрыть VS и снова открыть его. Это, вероятно, работало примерно половину времени. Когда это не сработало, я бы закрыл решение, удалил его .СУО файл (или весь .vs folder) и повторно откройте решение. До сих пор это всегда работало для меня (более 10 раз за последние 6 месяцев), но это немного утомительно, потому что некоторые вещи сбрасываются, такие как режим сборки, запуск проект, etc.

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

Примечание: я использую Visual Studio 2015.

Я обнаружил, что это часто происходит при использовании Git в Visual Studio 2017, переключение ветвей, где есть зависимые изменения кода. Даже если проект будет построен успешно, в списке ошибок останутся ошибки.

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

решения:

  • Закрыть Visual Studio
  • удалить {sln-root}.против\ "призма".IncomeVerification\v15.СУО файл (скрытый)
  • Перезапустить Visual Studio

у меня была такая проблема, когда Intellisense, похоже, не признавал существование одного проекта (много "не могу найти этот тип", "это пространство имен не существует" и т. д. ошибки.)

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

в верхней части проекта" отсутствует".файл csproj является элемент:

<ProjectGuid>{GUID}</ProjectGuid>

и во всех ссылочных проектах .csproj файлы были ссылки на проекты:

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

идентификатор GUID ссылки не соответствует идентификатору GUID проекта. Замена {GUID} выше {ANOTHER-GUID} Исправлена проблема без необходимости проходить через каждый проект привязки.

возможно, вы пытаетесь сбросить кэш intellisense. У меня была аналогичная проблема в visual studio 2012 при работе в большом проекте со многими частичными определениями классов. Уменьшение партиалов частично решило проблему, очистив также кэш intellisense-на некоторое время.

иногда мне приходится выполнять пользовательскую очистку, просматривая все проекты и вручную удаляя папки "bin" и "obj". Чтобы увидеть их в Visual Studio, необходимо включить скрытые файлы и папки для каждого проекта. После этого перестройте решение.

для моего конкретного случая это была ссылка на службу, которую другой разработчик объединил в основную ветку. Что было прекрасно, за исключением подсветки синтаксиса, не удалось разрешить сгенерированный класс обслуживания, а источник был подчеркнут красным цветом. Очистка, восстановление, перезапуск ничего не сделали.

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

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

очистка и перестройка проекта не сработали, даже если я закрыл VS между каждым шагом.

что в конечном итоге сработало, было переименование файла на что-то другое и изменение его обратно. : facepalm:

попробовав все перечисленные варианты, я обнаружил еще одну причину, по которой это может произойти. Если кто-то отправил вам исходный код в виде zip или вы загрузили zip, Windows может заблокировать все файлы. 2 способа решить эту проблему:

Способ 1:

щелкните правой кнопкой мыши на исходном Zip-файле - > Проверьте "разблокировать" - > нажмите Применить

Способ 2:

Если это не вариант, а не открытие свойств для каждого файла в в папке решения просто откройте power shell и разблокируйте рекурсивно, используя следующее:

Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File

для VS-2017, удаление .vs папка работала для меня.

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

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

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

после выполняя эти шаги, Visual Studio снова начала распознавать мой тип. Глядя на разницу в git, кажется, что проблема была вызвана тем, что окончания строк не совпадают на <Compile Include="..." /> строка моя .файл csproj.

0-щелкните правой кнопкой мыши на решении и очистите решение

1 - закрыть против

2-удалить проект .СУО файл

3-открыть против

4 - построение решения

в моем случае vs никогда не сохранял импортированные пространства имен в свойствах проекта > ссылки

когда я попытался добавить / проверить их снова, я не мог и vs бросил ошибку, а когда сохраненный проект vs разбился. Когда я снова открыл все стандартные импортированные пространства имен (system.данных и т. д...) все были снова отмечены галочкой, и тогда он узнавал все без ошибок

Я пробовал все 6 вариантов, ничего не работает для меня. Ниже Решение решило мою проблему.

закрыть VS. Удалить скрытые".vs " папка рядом с файлом решения. Перезапустите VS и загрузите решение.

попробуйте навести курсор мыши на подчеркнутые элементы. Обычно он должен сказать вам, в чем проблема. Чтобы просмотреть список всех ошибок / предупреждений, перейдите в меню Вид = > список ошибок. В нижней части IDE должна открыться таблица со всеми перечисленными ошибками/предупреждениями.

Я решил эту проблему, удалив временные файлы Microsoft .NET framework. Местоположение: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET файлы и C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET файлы

REM DELETE ALL VS HIDDEN SOLUTION OPTION FILES
DEL /A:H /S *.SUO