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

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

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

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

20 ответов


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

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

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

в меню Build > Clean Solution

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

в меню Build > Build Solution

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

Refresh Button

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

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

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

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

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

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

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

в меню Инструменты > Параметры > ReSharper > общие > приостановить / восстановить

Вариант 4: Удалить .файл СУО (@Neolisk)

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

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

и для Visual Studio 2017:

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Примечание-для Visual Studio 2015,.СУО!-Файл -8--> в .против/[solution_name]/в14 скрытые папки.


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


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

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

поскольку обычно проблема возникает только в одном проекте, я просто попытался выгрузить этот проект и перезагрузить его, и это сработало. Мой размер выборки составляет всего 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-файл - > Проверьте "разблокировать" - > нажмите apply

Способ 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 - закрыть VS

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

3 - открыть VS

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