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

Ссылка не может быть добавлена ​​из-за того же имени

Поскольку обновление до VS 2013, у меня есть поведение, которое я не могу добавить ссылку на 2 проекта с тем же именем. Я сделал следующее:

  • Добавлено 3 папки с решениями A, B и C.
  • Добавлен проект библиотеки классов классов "Core" в папку A и B.
  • Добавлен проект типа ConsoleApplication в папку C.

Полученная структура выглядит следующим образом:

Solution
 + A
   + Core
 + B
   + Core
 + C
   + ConsoleApp

В свойствах проекта A вводится следующее:

  • Название сборки: A.Core
  • По умолчанию пространство имен: A.Core

и в B:

  • Название сборки: B.Core
  • По умолчанию пространство имен: B.Core

После того, как я добавил ссылку на A.Core в C.ConsoleApp, и я пытаюсь ссылаться на B.Core на консоль, я получаю ошибку:

Ссылка на "Core (B.Core)" не может быть добавлена. Ссылка на компонент "Ядро" уже существует в проекте.

Решение было создано с помощью VS 2012 и демонстрирует это поведение после обновления. Что мне нужно настроить внутри консоли?

Изменить: я опубликовал screencast на Youtube, чтобы объяснить проблему и поместил ошибку в Microsoft-Support. Я все еще думаю, что это ошибка.

4b9b3361

Ответ 1

Проблема заключается в том, что имя ссылки берет название проекта. Он все еще ссылается на DLL на соответствующее имя (A.Core.dll или B.Core.dll), но ссылка использует имя проекта внутри VS:

enter image description here

Если вы посмотрите файл проекта после добавления ссылки на A.Core, вы увидите следующее:

<ProjectReference Include="..\ClassLibrary1\Core.csproj">
  <Project>{16c42795-f703-4673-98e4-98758c09f9e0}</Project>
  <Name>Core</Name>
</ProjectReference>

Измените значение Name на A.Core, и вы будете разблокированы. (B.Core все равно будет отображаться как "Core", пока вы его не отредактируете.)

Ответ 2

Удалите ссылку на эту dll, а затем повторно ее примените. это сработало для меня.