У меня есть проблема, которую можно рассматривать как расширение этот вопрос, в котором у пользователя возникают проблемы с неработающими внешними псевдонимами.
Вариант, который я испытываю, заключается в том, что два проекта выводят одно и то же имя файла. Первый (назовем его 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 в подпапку выходной папки, а затем сослаться на них там? Есть ли другие решения?