пятница, 4 мая 2012 г.

"Лишние" ссылки в проектах


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

Все сказанное помогает «нормальным» проектам. Нормальные проекты - это проекты, чье дерево зависимостей между проектами выглядит «широким», то есть имеет много «листовых», ни от кого независящих проектов. Если же у вас есть одна сборка Помойка.dll, от которой зависит большинство остальных сборок (таким образом ваше дерево проектов выглядит как Александрийский столп), то вы сами себе буратины – можете ходить и пить кофе на каждый билд.

P.S. Дерево проектов и его ширину-глубину можно посмотреть в билд-логе под расширенным логгированием.
Wider Two Column Modification courtesy of The Blogger Guide