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

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

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

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

Ответ 1

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

В меню ReSharper> Параметры> Среда> Общие> Очистить кэш

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

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

Ответ 2

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

Интересно, что приостановление работы Resharper, казалось, решило проблему после перезапуска VSO 2nd, но она вернулась после того, как я включил Resharper < - Я пытался сделать эту последовательность 2-3 раза обеспечить шаблон.

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

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

Примечание. Для Visual Studio 2015 файл .SUO находится в скрытой папке .vs/[solution_name]/v14.

Ответ 3

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

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

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

Примечание. По-видимому, это работает для VS 2019, 2017 и 2015.

Ответ 4

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

Ответ 5

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

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

Разрешить:

  • Закрыть Visual Studio
  • Удалите файл {sln-root}.vs\SlnName\v15.suo (скрытый)
  • Перезапустите Visual Studio

Ответ 6

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

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

Ответ 7

У меня возникла такая проблема, когда 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} устраняет проблему без необходимости проходить через каждый проект ссылки.

Ответ 8

Удалите скрытый путь к файлу = вашего решения\.vs\Имя вашего решения\v15\.suo

Ответ 9

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

Ответ 10

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

  1. Обозреватель решений → Найти файл с нераспознанным классом в нем.
  2. Нажмите Показать все файлы в верхней части обозревателя решений.
  3. Щелкните правой кнопкой мыши файл → Исключить из проекта.
  4. Снова щелкните файл правой кнопкой мыши → Включить в проект.

Это заставляет Intellisense анализировать файл, который он пропустил при переключении веток.

Ответ 11

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

Вариант 1. Очистка, сборка и обновление (@Mike Fuchs)

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

В меню "Построение"> "Чистый раствор"

И

В меню "Построить"> "Построить решение"

выберите нужный проект и нажмите кнопку обновления:

Refresh Button

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

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

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

Вариант 3. Очистить кеш ReSharper (@GammaOmega)

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

In menu, ReSharper > Options > Environment > General > Clear Caches

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

In menu, Tools > Options > ReSharper > General > Suspend/Restore

Вариант 4. Удалите файл .suo(@Neolisk)

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

[Path of Solution]/.vs/[Solution Name]/v14/.suo

А для Visual Studio 2017:

[Path of Solution]/.vs/[Solution Name]/v15/.suo

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

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

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

In Solution Explorer, right-click on project, Unload Project.

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

In Solution Explorer, right-click on project, Reload Project.

Вариант 6. Удалите и добавьте ссылку на Microsoft.CSharp(@Guilherme)

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

In Solution Explorer, expand the project, expand "References", right-click on "Microsoft.CSharp" и Remove.

Затем щелкните правой кнопкой мыши References> Add Reference, выберите "Microsoft.CSharp" из списка и нажмите "OK".

Ответ 12

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

Ответ 13

Следующее решение сработало для меня

1 - Закрыть VS

2 - Удалить папку.vs

3 - Открыть VS

4 - Сборка решения

Ответ 14

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

Ответ 15

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

Проблема:

Проект строит штраф, но Intellisense не распознает определенные типы и помечает определенное с using заявления как недействительные.

Решение:

Измените "Платформу решений" (в VS 2017 это раскрывающийся список рядом с раскрывающимся списком "Конфигурация решения", который имеет значения, такие как x86, x64, AnyCPU, Mixed Platforms и т.д.), На AnyCPU.

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

Ответ 16

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

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

Ответ 17

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

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

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

Ответ 18

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

1 - Закрыть VS

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

3 - Открыть VS

4 - Сборка решения

Ответ 19

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

Способ 1:

Щелкните правой кнопкой мыши на исходном файле Zip → Проверить "Разблокировать" → Нажмите "Применить"

Способ 2:

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

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

Ответ 20

  1. сначала закройте решение.
  2. затем удалите файл кэша решения (в папке C:\Users\Documents\Visual Studio\Backup Files/файле кэша проекта)
  3. затем.suo удалить файл
  4. то решение открывается и строится.

Я надеюсь решить вашу проблему

Ответ 21

Была эта проблема на работе (работает VS2017). Перепробовал все ответы здесь. Нет радости

Проект строился бы просто отлично, но жаловался, что не удалось найти пространства имен/типов. Красные повороты повсюду. Много ошибок в окне списка ошибок.

Мое решение содержало 3 проекта.

Обнаружено, что 3 из ссылок на библиотеку NuGet для одного из проектов были вне очереди. Консолидированы ссылочные версии библиотеки и бинго.

Надеюсь, это кому-нибудь поможет.

Бретт.

Ответ 22

Выгрузить и перезагрузить проект исправил эту проблему.

Ответ 23

Удаление папки .vs решило мою проблему.

Но это также сбросить текущие настройки моего решения в VS. Мол, мои выгруженные проекты в решении были перезагружены, и все прикрепленные и открытые документы также были закрыты, когда я перезапустил VS.

Ответ 24

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

Ответ 25

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

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

После выполнения этих шагов Visual Studio снова начала распознавать мой тип. Если посмотреть на diff в git, то проблема возникла из-за несоответствий строк в строке <Compile Include="..." /> моего файла .csproj.

Ответ 26

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

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

Ответ 27

TL; DR: выполнить чистую переустановку Visual Studio

Потеряв несколько часов, я все еще не мог исправить это для Visual Studio 2017. Затем я установил Visual Studio 2019 PREVIEW, и внезапно IntelliSense снова отображает меня в классах STL (что не связано с Visual Studio 2017).

Итак, я предполагаю, что может быть что-то не так с самой Visual Studio (возможно, что-то в каталоге кеша или вообще что-то на вашем ПК, которое напрямую не связано с конкретным решением), которое может быть решено чистым и полным re -установка Visual Studio. Я знаю, это глупое "решение", но в моем случае только новая установка Visual Studio (2019) имела эффект.

Как уже упоминалось, в моем случае затронуты только классы STL. IntelliSense не отображает своих членов, что нечетно. Я думал, это может быть связано с прекомпилированными заголовками. Где-то я читал, что STL и проект должны быть на одном диске и помещать их на то же самое, чтобы решить проблему. Но ни один из этих маршрутов не привел к успеху.

Ответ 28

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

Первичная ссылка "my_reference" не может быть разрешена, поскольку она была построена на основе инфраструктуры .NETFramework, Version = v4.7.2. Это более высокая версия, чем целевая на данный момент платформа .NETFramework, Version = v4.7.

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

Ответ 29

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

Ответ 30

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