Посмотрите на Задачу Версии в http://msbuildtasks.tigris.org/
Это позволит вам обновить assemblyinfo.cs при сборке.
Это все еще оставляет «как» идентифицировать ветку ...
На риск религиозных дебатов по нумерации версий вы можете посвятить одну часть major.minor.build.revision ветви.
Например, major.minor просто следует вашему «внешнему / коммерческому» номеру версии, сборка - это номер сборки TFS, а ревизия 1 указывает вашу основную ветвь, ревизия 2 - определенную ветвь.
Вы также можете использовать один из других атрибутов версии сборки, например AssemblyInformationalAttribute, для хранения в нем идентификатора ветви.
Я не совсем в курсе того, как вы можете обнаружить ветку, в которой вы находитесь, но в худшем случае это просто вопрос получения текущего каталога и применения некоторой логики для определения имени ветви.
Вывод ветки tf. Команда также должна дать вам имя ветки для текущего рабочего пространства, но вам понадобится пользовательское задание для извлечения только первой строки.
Не самонастраивающийся ответ, но он может привести вас в правильном направлении.