Как разрешить неправильную «неоднозначную ссылку» от ReSharper на наследование класса? - PullRequest
26 голосов
/ 10 октября 2008

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

public class ClassInheritFromBase : ClassBase

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

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

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

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

Ответы [ 12 ]

14 голосов
/ 20 января 2011

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

  1. Сначала я пошел во все свои библиотеки классов и убедился, что для всех ссылок на мои другие библиотеки классов для свойства Copy Local установлено значение false.
  2. В проекте, в котором я фактически получил неоднозначное справочное предупреждение, я пошел в свой каталог bin и удалил все файлы .dll и .pdb для всех библиотек, которые имели свой собственный проект.
  3. После новой сборки или, в моем случае, «ссылки на обновление» .dll-файлов в VS, ошибки из Resharper исчезли.

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

5 голосов
/ 24 февраля 2014

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

  1. Чистый раствор
  2. Закрыть Visual Studio
  3. Перейдите в корневую папку вашего решения, найдите папку с именем _ReSharper. [Имя вашего решения] и удалите ее.
  4. Вернитесь в Visual Studio, откройте свое решение, папка будет воссоздана, и после этого не будет больше «неоднозначных ссылок».
3 голосов
/ 05 ноября 2008

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

2 голосов
/ 16 декабря 2008

Это ошибка в ReSharper 4.1, исправленная в одной из более поздних ночных сборок.

Загрузите последнюю ночную сборку на http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds.

1 голос
/ 06 июля 2015

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

XXX.YYY.ZZZ.myassembly
ZZZ.myassembly

Убедитесь, что в ваших ссылках такого нет.

1 голос
/ 26 августа 2011

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

Я использовал Visual Studio 2010 с ReSharper 5.1 ... Очистка кэша НЕ справка (ReSharper -> меню Параметры -> Общие -> # Очистить кэш #).

1 голос
/ 26 февраля 2011

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

1 голос
/ 11 августа 2010

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

0 голосов
/ 14 марта 2014

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

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

  1. Сделайте чистый раствор.
  2. Открытые ссылки на оскорбительный проект
  3. Для каждой ссылки, относящейся к другому проекту в решении, установите Copy Local = false.
  4. Попытка перестроить решение. Скорее всего, вы получите неразрешенные ошибки ссылок - это нормально.
  5. Установите каждую ссылку обратно на Copy Local = true (при необходимости)
0 голосов
/ 09 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...