Подтвердить что ты не робот

Как разрешить неверную "неоднозначную ссылку" из ReSharper на наследование классов?

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

public class ClassInheritFromBase : ClassBase

Когда ClassBase наследуется, ReSharper выдает предупреждение о "неоднозначной ссылке" на ClassBase и все, что находится внутри нового класса, унаследованный от ClassBase не имеет IntelliSense и получает предупреждения, которые он не может найти.

Проект компилируется и работает нормально.

Если я изменил пространство имен, которое находится в ClassBase, а затем измените наследующие классы, они найдут его в порядке, и у ReSharper нет проблем, IntelliSense работает... пока он не будет скомпилирован. После компиляции он возвращается к наличию двусмысленных эталонных предупреждений и всего остального.

Было ли это замечено раньше и как оно может быть исправлено? Я видел запись в отслеживании ошибок JetBrains для такой же проблемы, но они закрыли ее как неспособную к воспроизведению.

4b9b3361

Ответ 2

Для тех, у кого до сих пор есть проблемы с этим (время от времени я получаю это), я сделал шаги, которые я сделал, чтобы избавиться от двусмысленного справочного предупреждения в ReSharper.

  • Сначала я перешел ко всем библиотекам классов и убедился, что все ссылки на мои другие библиотеки классов имеют свойство Copy Local для false.
  • В проекте, где я действительно получил двусмысленное справочное предупреждение, я пошел в каталог bin и удалил все файлы .dll и .pdb для всех библиотек, у которых был свой собственный проект.
  • После новой сборки или в моем случае "ссылка на обновление" на DLL файлах в VS, ошибки из Resharper исчезли.

Я использую Resharper 5.1 в Visual Studio 2008 только с ссылкой на DLL, которые я использую, поэтому мне пришлось "обновить ссылку"

Ответ 3

Я использую VS 2012 и ReSharper 7, и иногда я нашел такое же поведение. Это шаги, которые работали для меня:

  • Чистое решение
  • Закрыть Visual Studio
  • Перейдите в корневую папку вашего решения и найдите папку с именем _ReSharper. [Имя вашего решения] и удалите ее.
  • Вернитесь в Visual Studio, откройте свое решение, и папка будет воссоздана, а после этого не будет больше ошибок "неоднозначной ссылки".

Ответ 4

Я видел эту ошибку в ReSharper 4.1. Это происходит, когда базовый класс находится в каталоге App_Code. Я не знаю, как это исправить; это очень раздражает, но код все еще компилируется.

Ответ 5

ReSharper → Параметры → Общие: нажмите кнопку # Очистить кеши #.

Ответ 6

Для меня это был вопрос, когда я не использовал папку решений для кешей. Изменение его из местоположения TEMP в решение решило мою проблему.

Ответ 7

Я удалил папку _ReSharper.SolutionName, найденную в корне моего решения, и перезапустил.

Я использовал Visual Studio 2010 с ReSharper 5.1... Очистка кэша DID NOT help (ReSharper → меню Options → General → #Clear Cache #).

Ответ 8

У вас может быть двусмысленная ссылка. В проекте, где возникает неоднозначная ошибка ссылки, убедитесь, что вы проверяете ссылки на проект. У вас может быть одна и та же ссылка дважды, но в разных пространствах имен. В моем случае было два, но с разными путями (пример):

XXX.YYY.ZZZ.myassembly
ZZZ.myassembly

Удостоверьтесь, что у вас нет таких вещей в ваших ссылках.

Ответ 9

Я столкнулся с той же проблемой. Проблема, с которой я столкнулся, была вызвана произвольным поставщиком сборки (из библиотеки с открытым исходным кодом, которую я использую под названием PageMethods), и тот факт, что все мои .aspx-страницы наследуют от класса BasePage, который живет в папке App_Code.

Я не мог получить сборки ReSharper для работы с моим проектом (4.1.933, 4.1.943 (последний) или 4.5). Исправление в последней сборке ReSharper исправляет проблему "Неоднозначный справочник", но ломает поставщика пользовательской сборки.

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

Ниже перечислены зарегистрированные ошибки Jira, которые, как представляется, относятся к этой проблеме:

Ответ 10

Я столкнулся с той же проблемой со ссылками на классы С# в папке AppCode.

Я решил это, обновив свой ReSharper до версии 4.5 (начиная с версии 4.1).

Это было очень простое обновление, мне просто нужно было получить последнюю версию с сайта JetBrains (http://www.jetbrains.com/resharper/download/) и запустить его.

Мне не нужно было удалять предыдущую версию (v4.1). Мне не нужно было повторно вводить мой существующий лицензионный ключ.

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

Ответ 11

У меня была такая же проблема с ReSharper 5.1 и была решена с помощью перезапуска Visual Studio 2010.

Ответ 12

Использование VS 2013 Premium и Resharper 8.1, и эта проблема возникала в проекте ASP.Net.

Решение, которое сработало для меня:

  • Сделайте чистое решение.
  • Открыть ссылки для нарушающего проекта
  • В каждой ссылке, относящейся к другому проекту в решении, установите Copy Local = false.
  • Попытайтесь восстановить решение. Вероятно, вы получите нерешенные ссылочные ошибки - это нормально.
  • Установите каждую ссылку на Copy Local = true (если необходимо)