У меня есть решение, состоящее из нескольких проектов (все библиотеки классов). Предположим: A, B, C, D, E.ILmerge and Assembly References
A, B и C обеспечивают основные функциональные возможности и должны быть распределены вместе. D и E предоставляют некоторые адаптеры, которые не обязательно необходимы в любой ситуации.
Итак, я хочу, чтобы ILmerge A, B и C в одну сборку (названную ABC) перед распространением.
Проблема заключается в том, что когда проекты скомпилированы, D и E имеют ссылки на A, B и/или C, а не ABC. Поэтому, когда позже я пытаюсь ссылаться на ABC, D и E в каком-то другом проекте, я получаю ошибки компиляции, говорящие примерно так: «Аргумент экземпляра: невозможно преобразовать из« A.IBoo »в« A.IBoo ». В VS я также вижу, что сборочные подписи (имена) разные, конечно.
Есть ли хороший способ исправить это?
Я знаю, что я мог бы использовать политику издателя, но это не очень.
Кроме того, я знаю, что могу комбинировать проекты в оригинальном решении и избегать использования ILmerge, но я бы предпочел не делать этого.
Спасибо, что представили несколько вариантов. У меня есть внутренние и внешние ссылки, как в вашем случае. Фактически, проект, о котором я говорю, таков: https://github.com/Kostassoid/Anodyne, build.cmd может «объяснить», что я делаю до сих пор. Разделение решения, вероятно, является лучшей идеей, но поскольку это молодой проект, я должен часто работать над каждой его частью. – Kostassoid