Requisito no cumplido de la ciudad del equipo: existe MSBuildTools12.0_x86_Path

117

Tengo una instalación de TeamCity en una máquina con Windows x32 Server2008. He ejecutado la instalación web de .net 4.5. También he copiado los archivos de mi máquina x64 según este artículo, por lo que no necesitaba instalar vs2012 (aunque sí tuve que cambiar la ruta para eliminar x86 en la máquina de 32 bits):

MSBuild en la solución TeamCity de Visual Studio 2012

Parece que no puedo hacer que el agente local ejecute la compilación que configuré para msbuild en un proyecto vs2012 o vs2010. Sigo recibiendo:

Requisitos no satisfechos: existe MSBuildTools12.0_x86_Path

Reinicié el servidor varias veces y también reinicié el agente. Intenté jugar un poco con las variables de ruta, pero no puedo entender qué me estoy perdiendo. También miré en los parámetros de configuración y puedo ver estos:

MSBuildTools2.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727

MSBuildTools3.5_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v3.5

MSBuildTools4.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319

¿Cómo consigo 12.0 allí?

arcángel76
fuente
¿Sigues teniendo problemas con TeamCity?
Daniel Hollinrake
La cantidad de tiempo que me tomó darme cuenta de esto requirió que pusiera el proyecto en espera. Espero volver a hacerlo en primavera.
arcángel76
Me tomó un tiempo hacer que todo funcionara. Sin embargo, creo que la esencia era instalar MSBuild y actualizar Web Deploy.
Daniel Hollinrake

Respuestas:

149

Necesitaba instalar MSBuild por separado, luego, después de reiniciar el agente, la variable estaba allí.

(Del artículo de MSDN) MSBuild ahora se instala como parte de Visual Studio en lugar de como parte de .NET Framework. El número de versión actual de MSBuild es 12.0. Si desea instalar MSBuild por separado, descargue el paquete de instalación desde MSBuild Download.

editar: el enlace de respuesta estaba roto. Aquí está el enlace para Microsoft Build Tools 2015 (más recientemente hasta hoy): https://www.microsoft.com/en-us/download/details.aspx?id=48159

jmw
fuente
8
Cabe señalar que necesitará .NET Framework versión 4.5.1 (que se encuentra aquí: microsoft.com/en-ca/download/details.aspx?id=40779 ) para instalar MSBuild12.0.
Brandon
37
Para reiniciar el agente: 1. Vaya al servidor de compilación. 2. Ejecute services.msc desde el menú de inicio. 3. Busque TeamCity Agent, detenga el servicio y reinícielo. Eso puede parecer obvio para los veteranos experimentados de TeamCity, pero no para los usuarios nuevos como yo. :)
Jaim Eliyah
5
Aunque tengo MS Build Tools 2013 instalado, la variable MSBuildTools12.0_x86_Path todavía no está configurada y el agente no se ejecuta. ¿Hay alguna forma de configurarlo manualmente?
bdaniel7
Tuve que ir a este directorio y ejecutar vcvars64.bat: C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ amd64 Entonces msbuild funcionó para mí.
user8128167
5
De forma predeterminada, cuando utilicé la detección automática del archivo sln y mi solución se configuró en Visual Studio 2013. Cambié para Visual Studio 2015 instalado en el agente.
ptittof57
33

Una respuesta un poco tardía, pero si su proyecto es de VS 2012 y está utilizando el paso de compilación del archivo de solución detectado automáticamente, editar ese paso y elegir "Microsoft Visual Studio 2012" en el menú desplegable "Visual Studio" soluciona este problema. también (y, en mi humilde opinión, más correctamente).

Harper Shelby
fuente
2
¡No es tarde para nada! Tuve este problema hoy y cambiar la versión de VS a VS 2015 eliminó el mensaje de requisitos no cumplidos
Sudhanshu Mishra
Esto funcionó para mí servidor nuevo TeamCity 10 VS2015 (era un proyecto antiguo de 2013)
Rippo
2
Sí, mi problema fue que Team City "seleccionó automáticamente" la versión incorrecta de Visual Studio al elegir detectar automáticamente los pasos de compilación de la opción "Crear proyecto desde URL", así que simplemente fui al paso de compilación y cambié el Versión de Visual Studio para solucionar este problema. Espero que la gente verifique su respuesta primero antes de intentar instalar cosas que quizás no necesiten en la respuesta de jmw.
starmandeluxe
18

Tuve el mismo problema y al final resultó que mi paso de compilación definido para ejecutar MSBuild estaba mal configurado.

En mi paso de compilación de MSBuild, la configuración "MSBuild ToolsVersion" se estableció en 12.0 (predeterminado), lo que condujo al error "Requisitos no cumplidos: MSBuildTools12.0_x86_Path existe" en mi sistema. Como no necesito el nuevo MSBuild 12.0 para ejecutar mi compilación, cambié esta configuración a 4.0 en mi paso de compilación. Esta versión de MSBuild está instalada correctamente en mi sistema. Esto me resolvió el problema.

Andreas Schuermann
fuente
10

También llego un poco tarde a la fiesta, pero pensé en compartir lo siguiente en caso de que ayude a algún pobrecito.

  • Recibí el error mencionado anteriormente en una nueva instalación de TeamCity 8.1.4 en un nuevo Windows Server 2012 R2 caja de
  • Siguió las instrucciones de este hilo y el error siguió apareciendo a pesar de numerosos reinicios y reinstalaciones.
  • Noté que la información del agente, como el sistema operativo y la CPU, no aparecía en la página de detalles del agente. Esto indicó que el problema no era con los requisitos previos de .NET y MSBUILD, sino que estaba relacionado con que el servicio del agente no podía leer información sobre la máquina.
  • El agente se estaba ejecutando bajo la cuenta de un usuario (con todos los permisos necesarios según la documentación de TeamCity ). Pero pensé que vería qué pasaría si entraba en Herramientas de administración> Servicios y cambiaba la cuenta Iniciar sesión en el sistema local.
  • Reinició el servicio del agente.
  • Gran éxito.
Robert Hardy
fuente
Cambiar el agente para que se ejecute como servicio local me solucionó este problema también. Aunque no entiendo por qué. Agregué el usuario que estaba usando al grupo de administradores locales para ver si era un problema de permisos, pero eso no ayudó;
user381624
8

MSBuild ahora es parte de Visual Studio. Si necesita instalar las herramientas de compilación en su agente pero no desea instalar VS, deberá instalar las nuevas herramientas de compilación de Microsoft, que están disponibles en http://www.microsoft.com/en-us/download/ details.aspx? id = 40760 .

Steve Bering
fuente
1
Ver también: enlace para la versión Build Tools 2015 (el enlace mencionado es 2013 Tools ).
Jeroen
Y aquí está la versión 2017 (Herramientas para Visual Studio 2017 -> Herramientas de compilación para Visual Studio 2017)
fuglede
5

En mi caso, solo ayudó la instalación separada de MSBuild para VS2013. (aquí hay un enlace: https://www.microsoft.com/en-us/download/confirmation.aspx?id=40760 ) Creó esta carpeta La C:\Program Files (x86)\MSBuild\12.0instalación de las herramientas de MSBuild para VS2015 creó C:\Program Files (x86)\MSBuild\14.0esta carpeta, y TC no quiso úselo.

miotis
fuente
2

Tuve este problema en mi agente de compilación secundario.

Había copiado la carpeta MSBuild de la PC del agente de compilación principal a la PC del agente de compilación secundaria (como hice con algunos archivos de Visual Studio como se describe aquí: MSBuild en la solución TeamCity de Visual Studio 2012 ), en lugar de instalar MSBuild.

Sin embargo, parece que los servicios del agente de TeamCity comprueban el registro en busca de entradas de MSBuild cuando se inicia (no parece hacer esto con los archivos de Visual Studio que mencioné anteriormente). Como simplemente había copiado los archivos de la otra PC, no existía ninguna entrada de MSBuild para la versión 12.0, por lo que TeamCity no descubrió los archivos de MSBuild a pesar de que estaban presentes en la carpeta Archivos de programa (x86) \ MSBuild.

Cuando instalé Microsoft Build Tools desde el enlace anterior http://www.microsoft.com/en-us/download/details.aspx?id=40760 TeamCity encontró la entrada v. 12.0 en el registro y el agente pudo construya los mismos proyectos que el agente principal.

Recuerde reiniciar el servicio del agente de TeamCity después de instalar MS Build Tools.

Hildesheim
fuente
1

En mi caso, tengo TeamCity Professional 2018.1 en Windows 2016 Server. Descargué Build Tools para Visual Studio 2017 desde aquí: https://visualstudio.microsoft.com/downloads/ y seleccioné todas las opciones para las herramientas de compilación. Después de la instalación, agregué MSBuild a la variable de entorno global PATH. C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin en mi caso.

DerSkythe
fuente
0

En mi caso, era una máquina nueva sin Visual Studio instalado y acabo de restaurar Teamcity desde otra máquina. Así que instalé Visual Studio 2013 y resolví el problema del agente de Teamcity.

Shantu
fuente
0

Como se indicó anteriormente, el paso de compilación detectado automáticamente probablemente se haya detectado en una versión incorrecta de Visual Studio. Cámbielo usando el menú desplegable de Visual Studio en la sección Pasos de compilación en la página de configuración de configuración de compilación :

ingrese la descripción de la imagen aquí

Aleksei Mialkin
fuente
-1

Me pareció que resolví este problema entrando en el registro y eliminando todas las entradas de MSBuild que no eran para la versión 12, luego reinicié el agente.

Para hacer eso, vaya a Inicio> Ejecutar y escriba Regedit

Luego navega hasta la tecla:

HKEY_LOCAL_MACHINE> SOFTWARE> Microsoft> MSBuild

Elimina todas las versiones excepto la 12.0.

Vaya al siguiente nivel a ToolsVersions y elimine las versiones que no sean 12.0 allí.

HCdev
fuente
1
Esta es una mala idea, la última cosa que debe hacer en CI / CD está jugando con registros
goamn