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.exeen 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
msbuilden Símbolo del sistema , simplemente tiene que agregar la ruta a la instalación de .NET 4 Framework en su máquina a laPATHvariable de entorno.Puede acceder a las variables de entorno mediante:
PATHComo referencia, mi camino era
C:\Windows\Microsoft.NET\Framework\v4.0.3031921/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\Binfuente
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin. Ver docs.microsoft.com/en-us/visualstudio/msbuild/…A
Visual Studio 2013partir de ahora,MSbuildviene 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 deMSBuildes"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"Para
Visual Studio 15 Preview, el camino deMSBuildes"%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 *.*projpodrí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.cmdsecuencia de comandos que ejecuta el acceso directo "símbolo del sistema SDK" compruebacl.exeen 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>\Biny subcarpetas. Por supuesto, puede instalar el compilador de C en su lugar para evitar este error.fuente