внешний псевдоним с тем же именем файла сборки

У меня есть проблема, которую можно рассматривать как расширение этот вопрос, в котором у пользователя возникают проблемы с неработающими внешними псевдонимами.

Вариант, который я испытываю, заключается в том, что два проекта выводят одно и то же имя файла. Первый (назовем его Legacy, так как это старая версия) содержит классы, которые были двоично-сериализованы. Второй (Current) — это следующая версия моего домена. Я пытаюсь создать библиотеку преобразования (Compatibility), которая будет сопоставлять Legacy с Current для использования в новом домене.

Поскольку оба проекта строятся на MyApp.Domain.dll, один перезаписывается другим, когда сборки копируются в выходную папку для Compatibility. Когда это происходит, компилятор не может распознать, что у меня есть две версии одной и той же сборки, потому что на самом деле у меня есть только один файл с таким именем.

Это выглядит примерно так:

Project          Output

MyApp            MyApp.exe
Legacy           MyApp.Domain.dll
Current          MyApp.Domain.dll

Я понимаю, что одним из решений было бы изменить имя выходного файла Current (добавив «V2» или подобное), но я бы предпочел этого не делать, если этого можно избежать; Мне нравится сохранять подпись MyApp.Domain. В качестве альтернативы, есть ли способ указать компилятору скопировать вывод Legacy в подпапку выходной папки, а затем сослаться на них там? Есть ли другие решения?


person gregsdennis    schedule 06.03.2013    source источник
comment
Возможный дубликат нужен способ сослаться на 2 разные версии одной и той же сторонней DLL   -  person Orace    schedule 20.11.2019