2010-02-21 16 views
7

Estoy compilando un archivo MSBuild y usándolo con el MSBuild Build Runner dentro de TeamCity (5.0.2 (compilación 10784)), pero no creo que esté ejecutando la versión correcta de MSBuild porque sigo recibiendo el siguiente error:TeamCity utilizando ejecutables incorrectos de MSBuild?

error MSB5014: File format version is not recognized. MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.

soy un novato total con TeamCity, así que no estoy seguro de por dónde empezar a buscar cómo configurar esto. Como puede ver en la captura de pantalla siguiente, he seleccionado la versión 4.0 en la pantalla de configuración del corredor de compilación.

Build Configuration

+0

Te das cuenta de que .NET 4.0 todavía está en versión beta, ¿verdad? ¿Estás seguro de que no quieres 3.5 o 2.0? – TrueWill

+0

Sí ... Estoy construyendo una serie de demostraciones de bolsas marrones centradas en VS2010. Un gran porcentaje de la audiencia no está familiarizado con la integración continua, por lo que también estoy creando una demostración de CI para presentarla al grupo. Como ya están familiarizados con mi proyecto (incluidas las pruebas unitarias), prefiero usar el mismo proyecto de demostración que he usado en otras demostraciones. – senfo

Respuesta

5

Con base en el error parece que Equipo de la Ciudad/MSBuild congifuration no soporta VS2010. Las soluciones para VS2010 son la versión 10.0, ya que el error indica que solo es compatible con la versión 7.0 a la 9.0.

Here es un hilo del foro sobre la construcción de proyectos VS2010 utilizando TeamCity.

+0

¡Eso lo hizo! Muchas gracias. – senfo

4

extracción de la respuesta de the forum thread:

El problema se soluciona en TeamCity 5.1, pero hay un truco para hacer que funcione en 5.0

Básicamente, es necesario reemplazar el mecanismo que establece la ruta a MSBuild .exe basado en la versión de .NET Framework especificada en el compilador de compilación parte de la configuración de compilación.

Para ello, crea un ambiente variable "MSBuild" y la pusieron a system.DotNetFramework4.0_x86_Path%% (que es una variable generada automáticamente por el corredor de construcción cuando se detecta que tiene .NET 4.0 instalado)

La variable se puede crear en el agente, en el archivo buildAgent.properties, en este caso se debe llamar "env.MSBuild" y, dado que se define globalmente, afectará a todos los proyectos creados en este agente de compilación.

O bien, se puede crear dentro de la propia configuración de compilación (entonces el nombre sería simplemente "MSBuild"); en este caso, solo se aplicará a esta configuración de compilación.

Cuestiones relacionadas