Visual Studio отображает ошибки, даже если проекты строятся
У меня проблема с Visual Studio на решении C#. Он отображает полностью случайные ошибки, но проекты строятся. Прямо сейчас у меня есть 33 файла с ошибками, и я вижу красные волнистые линии во всех из них.
Я попытался очистить / перестроить решение, закрыть Visual Studio и даже перезагрузить компьютер. Я также сделал все шаги, описанные в разделе отладка выполняется даже с ошибками компилятора в Visual Studio. Я могу изменить .cs файлы, и я вижу изменения в решение.
кто-нибудь имеет представление о том, почему он это делает?
20 ответов:
вот коллекция популярных ответов. Upvote ОП ответа, если это помогло вам:
Вариант 1: Очистить, построить и обновить ( @Mike Fuchs)
Как @Mike Fuchs упомянуто, попробуйте следующие операции:
в меню Build > Clean Solution
затем построить его:
в меню Build > Build Solution
и, наконец, Обновить:
Вариант 2: Очистить, закрыть, перезапустить и построить ( @ Pixel)
Как @ Pixel упомянуто, попробуйте следующую последовательность операций:
- очистить решение
- Закрыть Visual Studio
- Открыть Visual Studio
- построить решение
Вариант 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
иногда, если вы просто очистите решение, ошибки исчезают, но они могут в конечном итоге вернуться через некоторое время или при следующей сборке.
столкнулся с этой проблемой, когда один тип не был распознан Visual Studio, который показал красную закорючку, хотя решение было успешно построено. Я заметил, что в обозревателе решений файл не имеет стрелки расширения слева, которая показывает классы и свойства при расширении.
исправление состояло в том, чтобы исключить файл из проекта и сохранить/построить, который вызвал ожидаемую ошибку, а затем включить файл в проект и сохранить и построить.
после выполняя эти шаги, Visual Studio снова начала распознавать мой тип. Глядя на разницу в git, кажется, что проблема была вызвана тем, что окончания строк не совпадают на
<Compile Include="..." />
строка моя .файл csproj.
0-щелкните правой кнопкой мыши на решении и очистите решение
1 - закрыть против
2-удалить проект .СУО файл
3-открыть против
4 - построение решения
в моем случае vs никогда не сохранял импортированные пространства имен в свойствах проекта > ссылки
когда я попытался добавить / проверить их снова, я не мог и vs бросил ошибку, а когда сохраненный проект vs разбился. Когда я снова открыл все стандартные импортированные пространства имен (system.данных и т. д...) все были снова отмечены галочкой, и тогда он узнавал все без ошибок
Я пробовал все 6 вариантов, ничего не работает для меня. Ниже Решение решило мою проблему.
закрыть VS. Удалить скрытые".vs " папка рядом с файлом решения. Перезапустите VS и загрузите решение.
попробуйте навести курсор мыши на подчеркнутые элементы. Обычно он должен сказать вам, в чем проблема. Чтобы просмотреть список всех ошибок / предупреждений, перейдите в меню Вид = > список ошибок. В нижней части IDE должна открыться таблица со всеми перечисленными ошибками/предупреждениями.