Ссылка не может быть добавлена из-за того же имени
Поскольку обновление до 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. Я все еще думаю, что это ошибка.
Ответы
Ответ 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, а затем повторно ее примените. это сработало для меня.