Как заставить ReSharper переоценить выделение ссылок на сборки

184

Я создаю шаблон проекта Prism, и шаблон отлично работает. Но после того, как я создаю проект с шаблоном, некоторые файлы выглядят так:

Плохие ссылки

Несмотря на внешность, все просто отлично.

Если я сделаю Rebuild All, я увижу, что решение собрано без ошибок:

Rebuilt

Но перестройка всего не избавляет от «ошибок», которые отображаются в окне редактора. (Обратите внимание, что фактическое окно ошибок не показывает никаких ошибок.)

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

Однако, если я закрою решение и снова открою его, все будет хорошо :

Работает после перезагрузки

Мой вопрос:

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

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

Есть ли команда ReSharper, которая просто обновляет этот материал?

Vaccano
источник
Вы используете ReSharper?
Джон Сондерс
@JohnSaunders - да, 5.1
Vaccano
Я видел, как это делает ReSharper, так что это может быть ошибка ReSharper, а не ошибка VS. Я только недавно видел это с версией 6.1.
Джон Сондерс
@JohnSaunders - я подтвердил, что это проблема ReSharper. Я отредактировал свой вопрос, чтобы переориентировать его на ReSharper. Спасибо, что указал мне правильное направление!
Ваккано
Какие версии Prism, WPF / SL / WinPhone вы используете в своем проекте?
Юра Гороховский

Ответы:

216

За исключением переустановки, единственный способ успешно очистить кеш - это удалить файлы вручную из каталога AppData.

Удалите папку с решением, которая вызывает у вас горе, в следующих местах:

  • %LOCALAPPDATA%\JetBrains\ReSharper\v7.1\SolutionCaches\
  • %LOCALAPPDATA%\JetBrains\Transient\ReSharperPlatformVsXX\vXX\SolutionCaches\ для новых версий.

Обратите внимание, что номера версий в путях могут отличаться в зависимости от установленной версии ReSharper.

XXВ vXXи VsXXпредставляет собой любое число, потому что там может быть несколько папок , где хранятся кэш решения.

iggymoran
источник
8
Этот путь может отличаться в зависимости от конфигурации кэшей. (См. Resharper> Параметры> Общие)
Безымянный один
1
Справедливо, но это определенно решает проблему, с которой вы сталкиваетесь (и не только вы ...)
Питер Маннингс
2
Ответ правильный. Закройте все экземпляры Visual Studio, удалите% LOCALAPPDATA% \ JetBrains \ ReSharper \ [ instal_version ] \ SolutionCaches.
Хуман
3
@Joel в ReSharper 9, с введением платформы ReSharper, она была перемещена в %localappdata%\JetBrains\Transient\ReSharperPlatformVs12\v01\SolutionCaches(как упоминает @brgerner , вы можете сначала нажать кнопку « Очистить кеши» , прежде чем идти по этому маршруту)
bdukes
7
Вы можете использовать Resharper -> General -> Clear Caches, чтобы очистить кэши независимо от их местоположения. Вам нужно будет перезапустить Visual Studio после очистки кеша
Кристофер Хос
98

Попробуйте выгрузить, а затем перезагрузить проект.

Чтобы выгрузить проект, щелкните правой кнопкой мыши проект в обозревателе решений и выберите Unload Project. Затем снова щелкните правой кнопкой мыши по проекту и выберите Reload Project.

Проблема продолжает возникать время от времени с последними версиями ReSharper, но исправление, похоже, работает для каждой версии.

zastrowm
источник
Похоже, перезагрузка вызывает повторное сканирование. Это кажется мне проще, чем охота на кеши в проводнике.
testpattern
69

Вы можете попробовать очистить кеш ReSharper через меню ReSharperПараметрыСреда / Общие → кнопка Clear Caches.

brgerner
источник
1
Увы, это все еще не исправило это ... Спасибо за идею все же.
Vaccano
23
После этого вам нужно перезапустить visual studio. Тогда это будет работать.
Феликс С
3
У меня не сработало даже после перезапуска Visual Studio. Спасибо однако.
Мэтт
Произошло со мной после понижения пакета nuget с последующим обновлением. Использовал этот совет, чтобы исправить.
Гийом Перро
Лучше всего работает, если вы закрываете Visual Studio, затем выполните msbuild yourSolution.sln / t: clean, затем очистите все более точные кэши, сохраните и снова откройте свое решение.
Джон-Филипп
14

Это сработало для меня. Нет необходимости перезагружать проекты. Вы можете сделать это из Visual Studio.

  1. Очистите кэш ReSharper с помощью ReSharper , Параметры , Общие , нажмите « Очистить кэш ».

    Варианты Resharper

    Resharper Clear Caches

  2. ReSharper , Windows , выберите « Решение ошибок ». Откроется окно «Ошибки решения». В верхней части этого окна нажмите кнопку « Переанализировать файлы с ошибками / предупреждениями ».

    ResharperWindows

    Повторно проанализировать файлы с ошибками

Донал
источник
1
Работал с R # 10.0.2, без перезапуска VS.
Себе Т.
1
Это сработало для меня, хотя мне пришлось перезапустить VS
Рори МакКроссан
6

Откройте ReSharper - Параметры - Среда - Общие , прокрутите вниз до Msbuild access и выберите Получить данные из msbuild после каждой компиляции .

Это сработало для меня, используя ReSharper 10.0.1 с ReSharper Build.

Winetradr
источник
Я также очистил решение и восстановил его. Затем я могу вернуться к предыдущему доступу Msbuild, когда он работает
znn
5

Перейти к ReSharper → WindowsОкно ошибок решения , и вы получите обзор ошибок в вашем решении. Там вы можете нажать на кнопкуReanalyze Files With Errors .

Если вы хотите, вы можете назначить ярлык для этого. Перейдите в ИнструментыПараметрыКлавиатура и выполните поиск «Повторный анализ». Вы можете назначить сочетание клавиш для ReSharper_ErrorsView_ReanalyzeAllFiles или ReSharper_ErrorsView_ReanalyzeFilesWithErrors.

Питер
источник
1
Я сталкиваюсь с подобной проблемой, и это не исправляет.
Тилак
Я тоже устал от этого. Это не решило проблему. Решарпер до сих пор отмечал ошибки, но все это скомпилировалось нормально. Выгрузка и повторная загрузка проекта - это единственный обходной путь, который я могу найти. (Хотя мне сказали, что это исправлено в последней версии resharper)
Vaccano
Очень полезно! У меня была такая же проблема с VS 2019 и Resharper 2019.3, но на самом деле это не было проблемой. Тот факт, что проект собирается, не обязательно означает, что Resharper не найдет ошибок. В моем случае были некоторые ошибки в некоторых тестовых XML-файлах в моем проекте NUnit. Это решение быстро нашло файлы
shelbypereira
3

У меня похожая проблема с пакетами nuget, и я нашел самый странный обходной путь: выберите ссылку в списке ссылок проекта и нажмите «F4». Каким-то образом появление окна свойств заставляет reharper переоценивать доступные ссылки ...

иронический
источник
1
Мне не повезло со всеми советами по «чистому кешу». Тогда я попробовал это, и это почти помогло. Мой обходной путь: найти проект с проблемой - открыть ссылки - выбрать ссылку, которая была помечена как неизвестная R # - нажать F4 - изменить что-то в свойствах, например, «скопировать локальный с истинного на ложный, затем обратно на истинный»
Chrigl
У меня было подобное исправление. Мне пришлось удалить ссылку из моего проекта и добавить ее заново. Ни одно из других решений не помогло мне.
CodeHxr
2

Я не уверен, что это та же самая основная причина, но я обнаружил, что в опциях ReSharper был проверен «Use MsBuild», и я получил все виды ошибочных сообщений. Попробуйте проверить «ReSharper-> Options-> General» и посмотреть, в каком состоянии находится проверка «Use MsBuild».

Marstov
источник
2

Перейдите в ReSharper → ПараметрыОбщие и нажмите Clear Caches. (У меня есть 8.2, поэтому, если вы используете другую версию, она может быть в другом месте.)

Затем вам нужно будет заново открыть свое решение, и ReSharper проведет повторный анализ всего.

BJury
источник
Работал на меня, спасибо. У меня были тонны проектов в моем решении, и я не хотел выгружать / перезагружать их все один за другим: p Не знаю, почему вы получили отрицательный отзыв.
Карл Патрик Йоханссон
1

Запустите следующий код в командной строке. Тогда решите проблему ReSharper ...

del /q/f/s %TEMP%\*
Мухаммед Эасса PN
источник
0

Единственное, что мне помогло, это: Unistall и снова установить Resharper (Ремонт не сработал)

Visual Studio 2010 SP1, ReSharper 7.1.3000.2254

Lu55
источник
0

Это странная проблема, и она все еще жива в версии 8.2.3 (сборка 8.2.3000.5176).

То, что, по-видимому, работает для меня на постоянной основе - это перестройка решения.

В VS 2013: Build -> Rebuild Solution

Andacious
источник
0

Если приведенные выше решения не работают, попробуйте сбросить тип выходных данных проекта. Похоже, это решает проблему с VS2015 Update 1 с ReSharper 10.1

Svenkle
источник
0

Для меня ничего из вышеперечисленного не сработало. Мне пришлось установить новую версию Resharper, которая поддерживает NET Core 2.0.

Томми Иварссон
источник
0

Решарпер сообщал о недостающей ссылке из проекта, который был включен в ссылки. Попробовав другие решения здесь, я отключил Resharper, следуя инструкциям этого ответа , и обнаружил, что intellisense в Visual Studio по-прежнему сообщал о тех же ошибках.

В этот момент я понял, что, возможно, что-то не так с файлом проекта. Я подозревал, что ссылка была слегка искажена во время слияния. 1

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


  1. Когда я проверил, что изменилось в файле csproj, я обнаружил, </Compile>что у него нет дополнительного открытого тега. Так что это действительно была ошибка слияния.
Чарли Килиан
источник