Tener un vistazo a la versión de tareas en http://msbuildtasks.tigris.org/
Se le permitirá actualizar los AssemblyInfo.cs en construcción.
Eso todavía deja el "cómo" para identificar la rama ...
Por el riesgo de tener un debate religioso en la versión de numeración puede dedicar una parte de la pieza a la major.minor.build.revision rama. Por ejemplo, major.minor simplemente sigue su número de versión 'exterior/comercial', build es el número de buildnumber TFS y la revisión 1 indica su rama principal, la revisión 2 indica una determinada rama. También puede usar uno de los otros atributos de versión de ensamblaje, como AssemblyInformationalAttribute para almacenar una identificación de rama en él.
No estoy actualizado como puede detectar la rama en la que se encuentra, pero en el peor de los casos, solo es cuestión de obtener el directorio actual y aplicar cierta lógica para inferir el nombre de la rama. La salida de una rama tf. El comando también debe darle el nombre de la sucursal para un espacio de trabajo actual, pero necesitará una tarea personalizada para extraer solo la primera línea.
No es una respuesta plug-and-play pero puede llevarte en la dirección correcta.
Sugeriría usar el [AssemblyConfigurationAttribute] (http://msdn.microsoft.com/en-us/library/system.reflection.assemblyconfigurationattribute.aspx) ya que está destinado a ser utilizado para la configuración de compilación textual de forma libre información. También le sugiero que cambie a un patrón en el que tenga un archivo compartido [VersionInfo] (http://stackoverflow.com/questions/62353/what-are-the-best-practices-for-using-assembly-attributes) entre proyectos para que pueda actualizar esta información en un solo lugar. No sé nada de TFS, así que no puedo ayudarte con eso. –
@chibacity La rama no es una configuración. AssemblyInformationalVersionAttribute parece ser un lugar más apropiado para almacenar esa información. Es un poco extraño que no haya un atributo de ensamblaje explícitamente para la rama. – mhenry1384