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 seMSBuildExtensionsPath
anteriormente (observe la partex86
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!
Instalar Microsoft Visual C ++ 2010 Service Pack 1 Actualización del compilador para Windows SDK 7.1 corrigió los errores MSB4019
que estaba construyendo en Windows7 x64.
El archivo léame de esa actualización indica que el orden recomendado es
- Visual Studio 2010
- Windows SDK 7.1
- Visual Studio 2010 SP1
- Actualización del compilador de Visual C ++ 2010 SP1 para Windows SDK 7.1
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.