Это зависит от того, насколько ваш код отличается между ними. В лучшем случае, если это просто вопрос ссылки на разные версии сборки, используйте NAnt или аналогичные и просто создайте цель сборки для каждой из них.
Если бы жизнь не была такой утопической, я бы создал три проекта для одной ветви: одну библиотеку классов, содержащую весь общий код, и другую библиотеку классов для каждой версии, которая содержит только неразделенный код.
Если общий код имеет зависимости от этих многоверсионных сборок, то, насколько я могу судить, вы более или менее застряли в том, чтобы что-то делать вручную. Это означает поддержание ветвления на цель и регулярное объединение между ними для синхронизации общих частей. Использование распределенной CMS облегчит задачу слияния, а создание батареи модульных тестов поможет уменьшить количество ошибок, которые вносят эти межпроектные слияния.