Неоднозначные ссылки в VS 2010 - PullRequest
3 голосов
/ 06 января 2011

Попытка обновить решение с 2008 до 2010. И я неожиданно получаю много неоднозначных ошибок при компиляции в VS 2010.

Он отлично работает в 2008 году. VS 2010 более строг в отношении директив использования?

Ответы [ 3 ]

4 голосов
/ 06 января 2011

У меня была похожая проблема.

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

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

Чтобы использовать любой из них, укажите полное расположение классов

или

определяют псевдоним:

using CompanyMagic = Core.Company.Magic;
2 голосов
/ 06 января 2011

есть ли у вас ссылки на две разные dll-версии одной и той же сборки в вашем решении?

Например, вы ссылаетесь на "System.dll из dotnet 2" плюс "System.dll из dotnet 4"?

0 голосов
/ 06 января 2011

На StackOverFlow есть довольно похожий пост: Неоднозначная ошибка ссылки в VS2010

Из этой статьи, от Ричард :

Могут быть небольшие изменения в правилах поиска того, как разные случаи (например, идентификатор в текущем пространстве имен имеет приоритет (как в классе Program выше).

Существует два варианта устранения неоднозначности:

  1. Используйте полностью определенные идентификаторы, как указано выше, либо System.Action, либо ConsoleApplication1.Action.
  2. Используйте псевдоним пространства имен, чтобы полностью квалифицировать идентификатор без необходимости набирать:

    с использованием MyAction = MyNamespace.Action;

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