Ошибка "Assembly Same Simple Name уже импортирована"

Это проект CLR. Я импортирую два DLL файла с тем же именем, quizz.dll (я переименовал старую версию как legacyquizz.dll), и я включил новую версию как quizz.dll в проект тестирования устаревшего конвертера. (Проект тестируемого старого проекта импортирует только старый quizz.dll).

Это ошибка, которую я получаю.,.

Сборка с таким же простым именем "Quizz, Версия = 2.0.0.1, Культура = нейтральная, PublicKeyToken = null уже импортирован.

Попробуйте удалить одну из ссылок или подписать их включить бок о бок. c: \.,\Quizz.dll

Путь, на который он указывает, является местом назначения новой версии quizz.dll.

Я использую внешний псевдоним в файле legacyquizz.dll:

extern alias legacy;

Что такое "простое имя" в этом контексте?

Ответ 1

Вы можете увидеть простое имя, открыв свойства проекта и выбрав "Информация о сборке":

enter image description here

Чтобы подписать сборку, вам нужно выбрать вкладку Подпись и создать или выбрать подпись:

enter image description here

Ответ 2

У вас есть две сборки с одинаковым именем (не имя файла, имя сборки). Для этого есть два решения:

  • Переименуйте одну из сборок из свойств проекта и перекомпилируйте.
  • Настройте Подписание сильного имени на сборке, чтобы можно было сосуществовать две отдельные версии одной и той же сборки.

Ответ 3

Если вы работаете с новой версией .csproj, вы можете столкнуться с этой проблемой после добавления ссылки на другой проект решения, если ссылка уже существует как зависимость от сборки (эта ссылка может быть автоматически добавлена Visual Studio).

В обозревателе решений разверните конфликтующий проект, перейдите к Dependencies-> Сборки и убедитесь, что нет существующей ссылки на сборку, которая вызывает конфликт. Если он существует, просто удалите его, и конфликт будет решен.

Ответ 4

Мне тоже кажется эта проблема в моем проекте. Я изменил свой путь к dll в другую папку и изменил ссылочный путь для того же (уровни зависимостей). Это будет работать. Не происходит дублирования.