Estoy configurando la compatibilidad con .NET 4.0 en nuestro servidor CI. He instalado .NET 4.0 y las herramientas .NET del SDK de Windows 7.1.
En .NET 2.0 y 3.5, eso simplemente funcionó. Con .NET 4, cuando ejecuto el "Símbolo del sistema de Windows SDK 7.1" desde el menú Inicio, se queja de
The x86 compilers are not currently installed. x86-x86
Please go to Add/Remove Programs to update your installation.
.
Setting SDK environment relative to C:\Program Files\Microsoft
SDKs\Windows\v7.1
\.
Targeting Windows Server 2008 x86 Debug
Luego, cuando intento ejecutar msbuild, obtengo:
C:\Program Files\Microsoft SDKs\Windows\v7.1>msbuild
'msbuild' is not recognized as an internal or external command,
operable program or batch file.
C:\Program Files\Microsoft SDKs\Windows\v7.1>
No puedo creer que instalar el tiempo de ejecución y el SDK te dejarán con un sistema que no puede ejecutar msbuild ... ¿Me he perdido algún paso obvio u oscurezco la actualización de Windows, o es hora de rendirme y comenzar a hackear la ruta del sistema? ?
%VCTools%
configurada la variable de entorno? Debe establecerse en una ruta. ¿Existecl.exe
en ese camino? Además, ¿estás en un Windows que no es inglés? He escuchado algunos informes de este problema en la instalación localizada de Windows.Respuestas:
Para habilitar
msbuild
en Símbolo del sistema , simplemente tiene que agregar la ruta a la instalación de .NET 4 Framework en su máquina a laPATH
variable de entorno.Puede acceder a las variables de entorno mediante:
PATH
Como referencia, mi camino era
C:\Windows\Microsoft.NET\Framework\v4.0.30319
21/03/18 Actualización de ruta:
A partir de MSBuild 12 (2013) / VS 2013 / .NET 4.5.1+ y posteriores, MSBuild ahora está instalado como parte de Visual Studio .
Como referencia, con VS2015 instalado mi máquina, mi ruta es
C:\Program Files (x86)\MSBuild\14.0\Bin
fuente
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
. Ver docs.microsoft.com/en-us/visualstudio/msbuild/…A
Visual Studio 2013
partir de ahora,MSbuild
viene como parte de Visual Studio. Anteriormente, MSBuild se instaló como parte de. NET Framework.MSBuild se instala directamente debajo de % ProgramFiles% . Entonces, la ruta para MSBuild puede ser diferente dependiendo de la versión de Visual Studio.
Para
Visual Studio 2015
, el camino deMSBuild
es"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
Para
Visual Studio 15 Preview
, el camino deMSBuild
es"%ProgramFiles(x86)%\MSBuild\15.0\Bin\MSBuild.exe"
Además, se han agregado algunas propiedades nuevas de MSBuild y algunas se han modificado. Para más información mira aquí
Actualización 1: VS 2017
La ubicación de MSBuild ha cambiado nuevamente con el lanzamiento de Visual Studio 2017 . Ahora el directorio de instalación está debajo de
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\[VS Edition]\MSBuild\15.0\Bin\
. Como tengo una edición Enterprise, la ubicación de MSBuild para mi máquina es"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSbuild.exe"
fuente
El uso del "Símbolo del sistema del desarrollador para Visual Studio 20XX" en lugar de "cmd" establecerá la ruta para msbuild automáticamente sin tener que agregarlo a las variables de entorno.
fuente
Su archivo bat podría ser como:
fuente
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild *.*proj
podría hacerlo, aunque tenga en cuenta que el camino para las versiones más nuevas de MSBuild (alrededor de 2013) es diferente.Para Visual Studio 2019 (Vista previa, al menos) ahora está en:
Me imagino que el proceso será similar para el lanzamiento oficial de 2019.
fuente
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MsBuild.exe
.Para poder construir con la sintaxis C # 6, use esto en la ruta:
fuente
La
SetEnv.cmd
secuencia de comandos que ejecuta el acceso directo "símbolo del sistema SDK" compruebacl.exe
en varios lugares antes de configurar entradas para agregarPATH
. Por lo tanto, no puede agregar nada si no se instala un compilador de C nativo.Para solucionarlo, aplique el siguiente parche a
<SDK install dir>\Bin\SetEnv.cmd
. Esto también reparará las rutas faltantes a otras herramientas ubicadas en<SDK install dir>\Bin
y subcarpetas. Por supuesto, puede instalar el compilador de C en su lugar para evitar este error.fuente