Известно что
«лишняя» ссылка из проекта А в проект В в результате компиляции не попадет в A.dll – об этом позаботится компилятор. Казалось бы ну и
нет проблемы. Однако с точки зрения билд-процесса эта «лишняя» ссылка
существует и поэтому если у вас изменились исходные файлы в проекте В, то будет
перестроен и он и проект А, даже если последний не менялся. Так что для ускорения
билдов неплохо было бы подчистить эти «лишние» ссылки. Для этого можно
воспользоваться R#-ом и его «Optimize
references».
Все сказанное
помогает «нормальным» проектам. Нормальные проекты - это проекты, чье дерево зависимостей
между проектами выглядит «широким», то есть имеет много «листовых», ни от кого
независящих проектов. Если же у вас есть одна сборка Помойка.dll, от которой зависит большинство остальных
сборок (таким образом ваше дерево проектов выглядит как Александрийский столп),
то вы сами себе буратины – можете ходить и пить кофе на каждый билд.
P.S. Дерево проектов и его ширину-глубину
можно посмотреть в билд-логе под расширенным логгированием.