Cuando ejecuto msbuild para construir un proyecto vc2010 me sale el siguiente error:
error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Confirm that the path in the <Import> declaration is correct, and that the file exists
on disk.
- msbuild ubicado c: \ Archivo de programa (x86) \ MSBuild
- HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolVersions \ V4.0 VCTargetsPath establecido en $ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \
- al ejecutar msbuild / verbosity: diag como buen sistema muestra MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath establecido como Entorno al inicio de la compilación
- establecer MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath como variables de entorno en el shell no hace que se muestren como Entorno al inicio de la compilación
Arreglos intentados
- Desinstalado .net 4.5, reparado .net 4.0
- Establezca MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath en las variables del sistema.
Parece que MSBuildExtensionsPath32 no se está configurando correctamente y la configuración de MSBuildExtensionsPath no ayuda
SET MSBuildExtensionsPath="C:\Program Files\MSBuild"
Avíseme si tiene alguna idea sobre qué está bloqueando la configuración adecuada de esta variable.
Respuestas:
Tengo este problema cuando publico una aplicación cocos2d-x usando su herramienta de línea de comando, que llama a MSBuild. Estoy usando Win 7 de 64 bits, VS2013 express, cocos2d-x versión 3.3, .NET Framework 4.5 instalado.
Solucioné el problema configurando lo siguiente antes de ejecutar el comando de publicación cocos.py:
fuente
[Environment]::SetEnvironmentVariable("VCTargetsPath", "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140", "Machine")
Para aquellos que no siguieron el orden proscrito de MS (ver la respuesta de Xv ) todavía pueden solucionar el problema.
MSBuild usa el
VCTargetsPath
para localizar las propiedades de cpp predeterminadas, pero no puede porque el registro carece de este valor de cadena.Verifique el valor de la cadena
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
VCTargetsPath
llave. El valor debería = "$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"Arreglar
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
VCTargetsPath
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"Nota:
HKLM
significaHKEY_LOCAL_MACHINE
.fuente
set VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0
VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v120
HKEY_LOCAL_MACHINE
que definitivamente deberías tenerlo en regeditset VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
Recientemente tuve el mismo problema y, después de instalar diferentes paquetes en un orden diferente, se estaba volviendo muy complicado. Entonces encontré este repositorio: https://github.com/felixrieseberg/windows-build-tools
npm install --global windows-build-tools
Instala las herramientas Python y VS Build necesarias para compilar la mayoría de los módulos de nodo. ¡Funcionó de maravilla!
fuente
--production
opciónnpm install --global --production windows-build-tools
Según las instrucciones de instalación de node- gypPara Visual Studio 2017 y 2019 en Windows 10
Muchas de las respuestas aquí se aplican a versiones anteriores de Visual Studio. Lo que funcionó para mí, si usaba la versión Visual Studio 2017 Community, era establecer una variable de entorno llamada
VCTargetsPath
y darle un valor deSi usa la versión Visual Studio 2019 Community,
Otras respuestas aquí configuraron esta variable
c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
pero noté que en mi instalación de Visual Studio, no había una carpeta llamada Microsoft.Cpp en mi carpeta MSBuild. Tenga esto en cuenta y el hecho de que la ruta anterior es para la versión comunitaria de Visual Studio 2017.Además, asegúrese de que su ruta de MSBuild en las variables de entorno apunte a la versión correcta de MSBuild si está utilizando la versión Visual Studio 2017 Community,
Si está utilizando la versión Visual Studio 2019 Community,
fuente
Microsoft Visual Studio\2019\BuildTools
o variaciones similares, y supongo que en lugar de BuildTools y Community también podría tener Professional y Enterprise.vswhere.exe -products * -property installationPath
buscará todas las combinaciones y devolverá las ubicaciones de todos los productos instalados.'vswhere.exe' is not recognized as an internal or external command, operable program or batch file.
La instalación de la actualización del compilador de Microsoft Visual C ++ 2010 Service Pack 1 para Windows SDK 7.1 solucionó los
MSB4019
errores que estaba generando en Windows7 x64.El archivo Léame de esa actualización indica que el orden recomendado es
fuente
En sistemas de 64 bits, MSBuild usa las siguientes propiedades (donde C: es SystemDrive):
Si no es así, significa que tiene instalados algunos objetivos de anulación de terceros personalizados o que su instalación de MSBuild está dañada.
Cosas para probar:
MSBuildExtensionsPath
manualmente como se indica arriba (observe lax86
parte en máquinas de 64 bits)fuente
Tuve este problema en la edición Visual Studio 2015. Cuando usé cmake para generar un proyecto, apareció este error.
error MSB4019: no se encontró el proyecto importado "D: \ Microsoft.Cpp.Default.props"
Lo arreglé agregando una cadena
con valor
en la ruta de registro
fuente
MSBuild en una herramienta de compilación independiente que frecuentemente se incluye con otras herramientas. Es posible que se haya instalado en su computadora con .NET (versiones anteriores), Visual Studio (versiones más recientes) o incluso Team Foundation Build.
MSBuild necesita archivos de configuración, compiladores, etc. (un conjunto de herramientas) que coincida con la versión de Visual Studio o TFS que lo usará, así como la versión de .NET contra la cual se compilará el código fuente.
Dependiendo de cómo se instaló MSBuild, los archivos de configuración pueden estar en una o más de estas rutas.
Como se describe en otras respuestas, un elemento de registro y / o un punto variable ambiental debe estar en la ruta del conjunto de herramientas.
Ocasionalmente, una operación como instalar una herramienta dejará el registro y / o la variable de entorno configurada incorrectamente. Las otras respuestas son todas variaciones para solucionarlos.
Lo único que tengo que agregar es que la variable ambiental no me funcionó cuando dejé el final \
fuente
Las entradas de registro para la clave MSBuild me funcionaron bien. Es importante recordar que debe hacerse para ramas de 64 bits o 32 bits, dependiendo de la versión de MSBuild que ejecute. No recomendaría usar variables de entorno ya que puede causar problemas en diferentes versiones de MSBuild.
Este archivo de registro corrige eso para ambos casos:
fuente
Nada más funcionó para mí excepto, establecer el camino como:
fuente
EDITAR: Esto se aplica a versiones anteriores de Visual Studio / MSBuild (¿específicamente MSVC2015?). Con versiones más modernas, MSBuild se incluye en Visual Studio Build Tools 2019, y los compiladores se encuentran en diferentes lugares y se detectan de diferentes maneras.
Esto se debe a una falta de coincidencia de los conjuntos de herramientas MSBuild instalados y la configuración del registro. Puede suceder si hiciste uno o más de los siguientes:
La única solución segura y confiable es reinstalar su sistema operativo. Si su proyecto necesita varias versiones de Visual Studio para compilar, instale primero la versión más antigua . Luego arregle su código para que pueda usar una sola herramienta para construirlo, o usted o sus colegas volverán a estar en el mismo lío pronto.
Si esta no es una opción para usted, primero lea https://stackoverflow.com/a/41786593/2279059 para comprender mejor el problema y lo que realmente hacen las diversas "soluciones". Luego, dependiendo de su versión y configuración de Visual Studio, una de las otras respuestas o variaciones de ellas eventualmente puede ayudar.
Algunas sugerencias más:
fuente
Instalar Microsoft Visual C ++ 2010 Service Pack 1 Compiler Update para Windows SDK 7.1 funcionó para mí. Sin embargo, tuve problemas con la actualización porque ya tenía VS 2010 y VS 2010 SP1 instalados. Como mencionó Xv anteriormente, el archivo readme.htm contiene soluciones para los problemas de instalación más comunes en la sección "Problemas conocidos". Seguiría las instrucciones en el archivo readme.htm y reiniciaría su máquina después de cada intento de solución de problemas porque algunas instalaciones escriben en su registro.
fuente
En mi caso, he agregado una variable de entorno
VCTargetPath
con ruta('\' al final es crucial, ya que los archivos de la solución del proyecto tienen una referencia al archivo de "objetivos de Microsoft cpp".
Además, a partir de Visual Studio 2017, MSBUILD viene dentro de Visual Studio, por lo que las
PATH variable
necesidades deben actualizarse conLa actualización
VCTargetPath
y lasPATH
variables y construcción de MSBUILD repararon el error.fuente
Encontré este error al escribir un script de compilación que pondría a MSBuild en% PATH% después de buscar de forma recursiva en la carpeta C: \ Windows \ Microsoft.NET los archivos MSBuild.exe encontrados. El último resultado encontrado fue el directorio que se colocó en la ruta. Dado que el
dir
comando golpeó laFramework64
carpeta después de queFramework
recibí uno de los MSBuilds de 64 bits en mi camino. Estaba tratando de construir una solución de Visual Studio 2010 y terminé alterando mi cadena de búsqueda deC:\Windows\Microsoft.NET
aC:\Windows\Microsoft.NET\Framework
para que terminara con un MSBuild.exe de 32 bits. Ahora mi archivo de soluciones se construye.fuente
Acabo de agregar
VCTargetsPath={c:\...}
como una variable de entorno a mi trabajo Hudson.fuente
Para el registro, el archivo
Microsoft.Cpp.Default.props
puede modificar la variable de entornoVCTargetsPath
y hacer incorrectos los usos posteriores de esa variable. Tuve ese problema y lo resolví estableciendoVCTargetsPath10
yVCTargetsPath11
con el mismo valor queVCTargetsPath
.Esto debe adaptarse de acuerdo con la versión VS que está utilizando.
fuente
Estoy viendo esto en un entorno VS2017. Mi script de compilación llama
VsDevCmd.bat
primero, y para resolver este problema configuro laVCTargetsPath
variable de entorno despuésVsDevCmd
y antes de llamar a MSBuild:fuente
Agregando a la respuesta de Chris Gong sobre VS2017 / 2019 arriba (todavía no tengo permiso de comentarios).
Si se instalan VS 2019 Build Tools en lugar de Visual Studio completo, las rutas de archivo son ligeramente diferentes. VCTargetsPath debería ser
También tenga en cuenta la barra diagonal inversa de terminación: requerida al menos en mi caso (TFS2017, VS2019 Build tools). Cambio correspondiente a la entrada PATH también.
fuente
Estaba enfrentando el mismo problema con MSBuild para VS 17
Resolví esto aplicando los siguientes pasos:
En mi caso, el
Microsoft.Cpp.Default.props
archivo estaba ubicado en,C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
así que creé unaVCTragetsPath
cadena en el registroHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
con valorC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
También hice que mi Jenkins se ejecutara como usuario administrador
Esto resolvió mi problema.
fuente
En lugar de establecer una ruta fija, intente esto primero en su línea de comandos posterior a la compilación:
La variable '$ (VCTargetsPath)' parece ser una macro visual-studio relacionada con c ++ que no se muestra en c # -sdk-projects como una macro, pero aún está disponible allí.
fuente