Мы перенаправляем выходной каталог проектов, чтобы он был ../../Debug (или ../../Release)
Наши библиотеки также находятся в этих каталогах.
Мы устанавливаем пути ссылки в каждом проекте как каталог Debug или Release соответственно (этот параметр сохраняется в пользовательских файлах, поскольку он является абсолютной, а не относительной ссылкой)
Мы сохраняем ссылки на проекты как ссылки на проекты. Все ссылки на dll имеют копии локального ложного и конкретной версии ложного, если только они не являются dll системного уровня, который, как мы знаем, будет в GAC на всех развернутых машинах.
Это работает, и ручные сборки в сборочных сценариях, имитирующих IDE, из командной строки (с использованием MSBuild)
Тестовые проекты, не предназначенные для развертывания, не направляют свои выходные данные в централизованный каталог Debug | Release, они просто используют стандартное расположение по умолчанию (и используют copy local, чтобы избежать проблем с блокировкой)
Версии библиотеки могут быть изменены автоматическим процессом сборки, заменив dll в каталогах Debug и Release.