quot proyecto props node msb4019 microsoft importado error encuentra cpp msbuild

proyecto - ¿Por qué se ve MSBuild en C: / para Microsoft.Cpp.Default.props en lugar de c: / Archivos de programa(x86) / MSBuild?(error MSB4019)



msb4019 no se encuentra el proyecto importado c:/ microsoft cpp default props (11)

Cuando ejecuto msbuild para construir un proyecto vc2010, aparece 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: / Program File (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 establecido como variables de entorno en shell no hace que se muestren como Entorno al inicio de la compilación

Soluciones intentadas

  • 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 establecer MSBuildExtensionsPath no ayuda

SET MSBuildExtensionsPath="C:/Program Files/MSBuild"

Por favor, avíseme si tiene alguna idea de lo que bloquea la configuración adecuada de esta variable.


Acabo de agregar VCTargetsPath={c:/...} como una variable de entorno para mi trabajo de Hudson.


En los sistemas de 64 bits, MSBuild se establece de manera predeterminada en las siguientes propiedades (donde C: es SystemDrive):

MSBuildExtensionsPath = C:/Program Files (x86)/MSBuild MSBuildExtensionsPath32 = C:/Program Files (x86)/MSBuild MSBuildExtensionsPath64 = C:/Program Files/MSBuild

De lo contrario, significa que tiene instalados algunos destinos de anulación de terceros personalizados o que la instalación de MSBuild está dañada.

Cosas para intentar:

  • Reparar la instalación de .NET
  • Aplicar el último Service Pack de Visual Studio
  • Establezca MSBuildExtensionsPath manualmente como se MSBuildExtensionsPath anteriormente (observe la parte x86 en máquinas de 64 bits)

Estoy viendo esto en un entorno VS2017. Mi script de construcción llama primero a VsDevCmd.bat , y para resolver este problema establecí la variable de entorno VsDevCmd después de VsDevCmd y antes de llamar a MSBuild:

set VCTargetsPath=%VCIDEInstallDir%VCTargets


He tenido el mismo problema recientemente y después de instalar diferentes paquetes en diferente orden, se estaba volviendo muy complicado. Luego encontré este informe: https://github.com/felixrieseberg/windows-build-tools

npm install --global windows-build-tools

Instala las herramientas Python y VS Build que se requieren para compilar la mayoría de los módulos de nodos. Funcionó un placer!



La instalación de la actualización del compilador de Microsoft Visual C ++ 2010 Service Pack 1 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 se mencionó anteriormente en Xv , 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é su máquina después de cada intento de solución de problemas porque algunas instalaciones escriben en su registro.


MSBuild en una herramienta de compilación independiente que se incluye frecuentemente con otras herramientas. Puede haber sido 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 ToolSet) que coincida con la versión de Visual Studio o TFS que lo usará, así como la versión de .NET con la que 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.

  • C: / Archivos de programa (x86) / MSBuild / Microsoft.Cpp / v4.0 /
  • C: / Archivos de programa (x86) / MSBuild / Microsoft.Cpp / v4.0 / V120 /
  • C: / Archivos de programa (x86) / MSBuild / Microsoft.Cpp / v4.0 / V140 /

Como se describe en otras respuestas, un elemento de registro y / o un punto de variable ambiental debe ir a la ruta del ToolSet.

  • La clave VCTargetsPath en HKLM / SOFTWARE / Microsoft / MSBuild / ToolsVersions / 4.0
  • La variable de entorno VCTargetsPath.

Ocasionalmente, una operación como instalar una herramienta dejará la variable de registro y / o ambiental configurada incorrectamente. Las otras respuestas son todas variaciones sobre cómo arreglarlas.

Lo único que tengo que agregar es que la variable ambiental no funcionó para mí cuando dejé el final /


Me encontré con este error al escribir un script de compilación que pondría MSBuild en% PATH% después de buscar recursivamente a través de la carpeta C: / Windows / Microsoft.NET para encontrar cualquier archivo MSBuild.exe. El último hit encontrado fue el directorio que se puso en el camino. Dado que el comando dir golpearía la carpeta Framework64 después de Framework I estaba poniendo uno de los MSBuilds de 64 bits en mi camino. Estaba intentando construir una solución de Visual Studio 2010 y terminé alterando mi cadena de búsqueda de C:/Windows/Microsoft.NET a C:/Windows/Microsoft.NET/Framework para que terminara con un MSBuild.exe de 32 bits. Ahora mi archivo de solución se construye.


Obtuve este problema al publicar una aplicación cocos2d-x usando su herramienta de línea de comandos, 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 estableciendo lo siguiente antes de ejecutar el comando de publicación cocos.py:

SET VCTargetsPath=C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V120


Para aquellos que no siguieron el orden de MS proscrito (ver la respuesta de Xv ) aún puede solucionar el problema.

MSBuild utiliza VCTargetsPath para localizar las propiedades predeterminadas de cpp pero no puede porque el registro carece de este valor de cadena.

Verificar el valor de cadena

  • Lanzar regedit
  • Navegador a HKLM/SOFTWARE/Microsoft/MSBuild/ToolsVersions/4.0
  • Inspeccione la clave VCTargetsPath . El valor debería = " $(MSBuildExtensionsPath32)/Microsoft.Cpp/v4.0/ "

Arreglar

  • Inicie el navegador regedit a HKLM/SOFTWARE/Microsoft/MSBuild/ToolsVersions/4.0
  • Agregar valor de cadena VCTargetsPath
  • Establecer valor en " $(MSBuildExtensionsPath32)/Microsoft.Cpp/v4.0/ "

Nota: HKLM significa HKEY_LOCAL_MACHINE .


Para el registro, el archivo Microsoft.Cpp.Default.props puede modificar el env var VCTargetsPath y hacer que los usos posteriores de esa VCTargetsPath sean incorrectos. Tuve ese problema y lo resolví estableciendo VCTargetsPath10 y VCTargetsPath11 en el mismo valor que VCTargetsPath .

Esto debe adaptarse de acuerdo con la versión de VS que esté utilizando.