Ответ на ваш вопрос, конечно, "это зависит".
Чего вы не говорите, так это того, как вы ссылаетесь на «подпроекты» в вашем решении или они используются другими решениями (основными проектами)? Это ссылки на проекты? Если это так, попросите Nant вызвать MSBuild для создания решения. Это создаст все подпроекты на основе этих зависимостей. Я могу только предположить, что это так, как вы настроили.
Лично, если бы у меня была установка, похожая на вашу, я бы не использовал ссылки на проекты, и при этом у меня не было бы внешнего кода для всего кода для каждого проекта. Я бы относился к этим подпроектам так же, как к сторонним DLL.
Если бы вы сделали это, вы бы использовали ссылки на DLL. Это отделяет подпроекты от вашего основного проекта. Это мой путь, особенно если на эти подпроекты ссылаются другие проекты.
Да, теперь вам нужно принять некоторые другие решения ... например, как сохранить их в системе контроля версий. У вас могут быть внешние файлы в вашей папке lib ... или вы можете просто поместить копию DLL в вашу папку lib. Это также зависит от того, как вы хотите контролировать версионность.
Кроме того, вы не упоминаете, используете ли вы какой-либо тип CI, такой как CC.Net. Если бы вы это сделали, вы могли бы вызвать перестройку основного проекта, если какой-либо из подпроектов был изменен.