visual studio 2010 - visual - Cómo lanzar la versión correcta de Msbuild
visual studio code path intellisense (4)
Cuando escribo ...
Msbuild<Enter>
... en el símbolo del sistema, obtengo ...
Microsoft (R) Build Engine Version 2.0.50727.4927
[Microsoft .NET Framework, Version 2.0.50727.4927]
Copyright (C) Microsoft Corporation 2005. All rights reserved.
Esto está muy bien y bien, excepto que cuando ejecuto esto en un archivo .sln
Visual Studio 2010, el mensaje de error indica:
MyProject.sln(2): Solution file error MSB5014: File format version is not recognized. MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.
0 Warning(s)
1 Error(s)
Parece que la versión de MSBuild que se está llamando no es capaz de entender mi archivo de solución.
Pensé que revisaría mi ruta y vería de dónde se está recogiendo MSBuild. Sin embargo, parece que ninguna parte de mi camino apunta a una ubicación donde se encuentra MSBuild.
¿Cómo encuentra la línea de comandos la copia de MSBuild que está utilizando y cómo puedo cambiar esta versión para que se use la última versión?
Cambia tus variables de entorno
Encuentra / establece tu variable de ruta MSBuild para que sea C:/Windows/Microsoft.NET/Framework/v4.0.30319
Obviamente, la ruta anterior dependerá de la ubicación de instalación, pero estará cerca si no es exacta.
Debe estar en algún lugar del entorno PATH. Use ''where msbuild'' para determinar desde dónde está cargando msbuild.
Use el atajo del Símbolo del sistema de Visual Studio (2010) para inicializar la ruta y otras variables de entorno para VS 2010 y MSBuild 4.0.
Encontré esta pregunta ya que mi variable PATH
no contenía una referencia a MSBuild.exe
. En caso de que alguien más tenga este problema, mi resolución fue registrar explícitamente las variables de entorno para las herramientas de Visual Studio desde el símbolo del sistema:
"%VS100COMNTOOLS%"//vsvars32.bat // VS2010 environment variables
"%VS110COMNTOOLS%"//vsvars32.bat // VS2012 environment variables
"%VS120COMNTOOLS%"//vsvars32.bat // VS2013 environment variables
MSBuild.exe
ahora está registrado en PATH
where msbuild
C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe
C:/Windows/Microsoft.NET/Framework/v3.5/MSBuild.exe
Para construir un proyecto C # 6, esto funcionó para mí en un archivo por lotes
if exist "%ProgramFiles(x86)%/MSBuild/14.0/bin" set MSBUILDLOCATION=%ProgramFiles(x86)%/MSBuild/14.0/bin
if exist "%ProgramFiles%/MSBuild/14.0/bin" set MSBUILDLOCATION=%ProgramFiles%/MSBuild/14.0/bin
"%MSBUILDLOCATION%/msbuild.exe" "path/to/my/project.csproj"
Puede cambiar fácilmente el número de versión (14.0) o agregar líneas con más números de versión (12.0 y 4.0, por ejemplo) si desea admitir un rango de versiones.