Ваш вопрос довольно общий. Что вы хотите достичь? Должен ли Project A использовать версию 2 вашей библиотеки или старую версию?
Если A должен использовать версию 1, то сильное именование или приватное развертывание должны решить вашу проблему. Но я думаю, что тогда вы бы не задали вопрос.
Если А должен использовать версию 2, то решение зависит от ваших изменений. Если интерфейс сборки не изменился (а только внутренние алгоритмы), то A должен работать с V2 без перекомпиляции. Если интерфейс изменился, вам все равно придется настроить проект А, и не может быть общего решения.
Чтобы сохранить необходимые изменения небольшими, управляемость - это вопрос хорошего дизайна объекта / интерфейса. Но на то, как это сделать, невозможно ответить без подробностей о ваших объектах и необходимых изменениях.