Столкнулись с ситуацией. Есть система, расширяемая плугинами.
Происходит такая фигня — разработчик Вася, знающий тему, но слабо понимающий C# звонит разработчику Пете и просит у него пример плугина. Получает проект, реализует свою функциональность, проверяет и рапортует — "готово!".
Потом они оба присылают свои творения и оказывается, что Вася поменял только код, а реквизиты сборки — нет.
В результате у них могут совпадать:
1) Имя файла сборки.
2) AssemblyName
3) Имя класса, реализующего интерфейс.
Как все разом, так и по-отдельности. Ну п.1 решается на месте ручками, а п2. и п3 ?
Как с этим работать при том, что отослать-править-получить с Васи — это пара дней, а работать оно должно было еще вчера ?
Годятся любые средства — хоть утилиты, хоть Reflection, хоть Reflection.Emit.
В принципе — можно использовать не оба плугина сразу, а выбрать в настройках из них только 1, но с этим тоже проблемы — вторая сборка при одинаковом AssembyName не прочтется, даже список выбора не составить.