Quando executo o msbuild para criar um projeto vc2010, recebo o seguinte erro:
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 localizado c: \ Arquivo de Programa (x86) \ MSBuild
- HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolVersions \ V4.0 VCTargetsPath definido como $ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \
- ao executar o msbuild / verbosity: diag, como bom sistema mostra MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath definido como Ambiente no início da compilação
- definir MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath definido como variáveis de ambiente no shell não faz com que sejam mostrados como Ambiente no início da compilação
Correções tentadas
- .Net 4.5 não desinstalado, .net 4.0 reparado
- Defina MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath nas variáveis do sistema.
Parece que o MSBuildExtensionsPath32 não está sendo definido corretamente e a configuração do MSBuildExtensionsPath não ajuda
SET MSBuildExtensionsPath="C:\Program Files\MSBuild"
Entre em contato se tiver alguma idéia sobre o que está bloqueando a configuração adequada dessa variável.
Respostas:
Eu tive esse problema ao publicar um aplicativo cocos2d-x usando sua ferramenta de linha de comando, que chama MSBuild. Estou usando o Win 7 de 64 bits, VS2013 express, cocos2d-x versão 3.3, .NET Framework 4.5 instalado.
Corrigi o problema definindo o seguinte antes de executar o comando de publicação cocos.py:
fonte
[Environment]::SetEnvironmentVariable("VCTargetsPath", "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140", "Machine")
Para aqueles que não seguiram a ordem proscrita da MS (consulte a resposta de Xv ), você ainda pode resolver o problema.
O MSBuild usa o
VCTargetsPath
para localizar propriedades padrão do cpp, mas não pode porque o registro não possui esse Valor da String.Verifique o valor da string
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
VCTargetsPath
chave. O valor deve = "$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"Consertar
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
VCTargetsPath
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"Nota:
HKLM
significaHKEY_LOCAL_MACHINE
.fonte
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 você definitivamente deveria tê-lo em regeditset VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
Eu tive o mesmo problema recentemente e depois de instalar pacotes diferentes em ordem diferente, estava ficando muito confuso. Então encontrei este repositório - https://github.com/felixrieseberg/windows-build-tools
npm install --global windows-build-tools
Ele instala as ferramentas Python e VS Build necessárias para compilar a maioria dos módulos de nós. Funcionou um prazer!
fonte
--production
opção.npm install --global --production windows-build-tools
De acordo com o nó-gyp instruções de instalação: github.com/nodejs/node-gypPara Visual Studio 2017 e 2019 no Windows 10
Muitas das respostas aqui se aplicam a versões mais antigas do Visual Studio. O que funcionou para mim, se estiver usando a versão da Comunidade do Visual Studio 2017, foi definir uma variável de ambiente chamada
VCTargetsPath
e atribuir a ela um valor deSe estiver usando a versão da Comunidade do Visual Studio 2019,
Outras respostas aqui configuram essa variável como
c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
mas notei que na instalação do meu visual studio, não havia uma pasta chamada Microsoft.Cpp na minha pasta MSBuild. Portanto, lembre-se disso e do fato de que o caminho acima é para a versão comunitária do Visual Studio 2017.Além disso, verifique se o caminho do MSBuild nas variáveis de ambiente aponta para a versão correta do MSBuild se você estiver usando a versão da Comunidade do Visual Studio 2017,
Se você estiver usando a versão da Comunidade do Visual Studio 2019,
fonte
Microsoft Visual Studio\2019\BuildTools
variações semelhantes - e suponho que, em vez de BuildTools e Community, você também possa ter o Professional e o Enterprise.vswhere.exe -products * -property installationPath
procurará todas as combinações e retornará os locais de todos os produtos instalados.'vswhere.exe' is not recognized as an internal or external command, operable program or batch file.
A instalação da atualização do compilador do Microsoft Visual C ++ 2010 Service Pack 1 para o Windows SDK 7.1 corrigiu os
MSB4019
erros que eu estava adquirindo no Windows7 x64.O leia-me dessa atualização afirma que o pedido recomendado é
fonte
Em sistemas de 64 bits, o MSBuild padroniza as seguintes propriedades (onde C: é SystemDrive):
Caso contrário, significa que você tem alguns destinos personalizados de substituição de terceiros instalados ou a instalação do MSBuild está corrompida.
Coisas para experimentar:
MSBuildExtensionsPath
manualmente como acima (observe ax86
peça em máquinas de 64 bits)fonte
Eu tive esse problema na edição do Visual Studio 2015. Quando usei o cmake para gerar um projeto, esse erro apareceu.
erro MSB4019: O projeto importado "D: \ Microsoft.Cpp.Default.props" não foi encontrado
Corrigi-o adicionando uma String
com valor
no caminho do registro
fonte
MSBuild em uma ferramenta de compilação independente que é frequentemente empacotada com outras ferramentas. Pode ter sido instalado no seu computador com .NET (versões mais antigas), Visual Studio (versões mais recentes) ou mesmo Team Foundation Build.
O MSBuild precisa de arquivos de configuração, compiladores etc. (um ToolSet) que corresponda à versão do Visual Studio ou TFS que o usará, bem como à versão do .NET na qual o código-fonte será compilado.
Dependendo de como o MSBuild foi instalado, os arquivos de configuração podem estar em um ou mais desses caminhos.
Conforme descrito em outras respostas, um item de registro e / ou ponto de variável ambiental deve estar no caminho do ToolSet.
Ocasionalmente, uma operação como a instalação de uma ferramenta deixa o registro e / ou a variável ambiental configurada incorretamente. As outras respostas são todas variações sobre como corrigi-las.
A única coisa que tenho a acrescentar é que a variável ambiental não funcionou para mim quando parei o final \
fonte
As entradas do registro para a chave MSBuild funcionaram bem para mim. É importante lembrar que isso deve ser feito para ramificações de 64 ou 32 bits, dependendo da versão do MSBuild que você executa. Eu não recomendaria usar variáveis de ambiente, pois isso pode causar problemas em diferentes versões do MSBuild.
Este arquivo do registro corrige isso nos dois casos:
fonte
Nada mais funcionou para mim, exceto, definindo o caminho como:
fonte
EDIT: Isso se aplica a versões mais antigas do Visual Studio / MSBuild (especificamente MSVC2015?). Com versões mais modernas, o MSBuild é incluído no Visual Studio Build Tools 2019, e os compiladores estão localizados em locais diferentes e detectados de maneiras diferentes.
Isso ocorre devido a uma incompatibilidade dos conjuntos de ferramentas e configurações do Registro do MSBuild instalados. Isso pode acontecer se você fez um ou mais dos seguintes procedimentos:
A única solução segura e confiável é reinstalar o sistema operacional. Se seu projeto precisar de várias versões do Visual Studio para criar, instale a versão mais antiga primeiro . Em seguida, corrija seu código para poder usar uma única ferramenta para construí-lo, ou você ou seus colegas voltarão à mesma bagunça em breve.
Se isso não for uma opção para você, leia primeiro https://stackoverflow.com/a/41786593/2279059 para obter uma melhor compreensão do problema e o que as várias "soluções" realmente fazem. Em seguida, dependendo da versão e configuração do Visual Studio, uma das outras respostas ou variações delas poderá ajudar.
Mais algumas dicas:
fonte
Instalar a atualização do compilador do Microsoft Visual C ++ 2010 Service Pack 1 para o Windows SDK 7.1 funcionou para mim. No entanto, tive problemas com a atualização porque eu já tinha o VS 2010 e o VS 2010 SP1 instalados. Conforme mencionado por Xv acima, o arquivo readme.htm contém soluções para os problemas mais comuns de instalação na seção "Problemas conhecidos". Eu seguia as instruções no readme.htm e reiniciava sua máquina após cada tentativa de solução de problemas, porque algumas instalações gravam no seu registro.
fonte
No meu caso, adicionei uma variável de ambiente
VCTargetPath
com path('\' no final é crucial, pois os arquivos de solução do projeto têm uma referência ao arquivo "Microsoft cpp target").
Além disso, a partir do Visual Studio 2017 MSBUILD é fornecido no Visual Studio - portanto, é
PATH variable
necessário atualizar oA atualização
VCTargetPath
e asPATH
variáveis e construção do MSBUILD corrigiram o erro.fonte
Me deparei com esse erro escrevendo um script de compilação que colocaria o MSBuild no% PATH% depois de procurar recursivamente na pasta C: \ Windows \ Microsoft.NET os arquivos MSBuild.exe encontrados. O último hit encontrado foi o diretório que foi colocado no caminho. Como o
dir
comando atingia aFramework64
pasta depois queFramework
eu estava recebendo um dos MSBuilds de 64 bits colocados no meu caminho. Eu estava tentando criar uma solução do Visual Studio 2010 e acabei alterando minha sequência de pesquisa deC:\Windows\Microsoft.NET
paraC:\Windows\Microsoft.NET\Framework
para que eu terminasse com um MSBuild.exe de 32 bits. Agora meu arquivo de solução é compilado.fonte
Acabei de adicionar
VCTargetsPath={c:\...}
como uma variável de ambiente ao meu trabalho no Hudson.fonte
Para o registro, o arquivo
Microsoft.Cpp.Default.props
pode modificar a var envVCTargetsPath
e tornar incorretos os usos subsequentes dessa var. Eu tive esse problema e o resolvi definindoVCTargetsPath10
eVCTargetsPath11
com o mesmo valor queVCTargetsPath
.Isso deve ser adaptado de acordo com a versão do VS que você está usando.
fonte
Estou vendo isso em um ambiente VS2017. Meu script de construção chama
VsDevCmd.bat
primeiro e, para resolver esse problema, defino aVCTargetsPath
variável de ambienteVsDevCmd
antes e depois de chamar o MSBuild:fonte
Adicionando à resposta de Chris Gong sobre o VS2017 / 2019 acima (ainda não tenho permissão para comentários).
Se o VS 2019 Build Tools estiver instalado em vez do Visual Studio completo, os caminhos dos arquivos serão ligeiramente diferentes. O VCTargetsPath deve então ser
Observe também a barra invertida final - necessária pelo menos no meu caso (ferramentas de compilação TFS2017, VS2019). Alteração correspondente à entrada PATH também.
fonte
Eu estava enfrentando o mesmo problema com o MSBuild for VS 17
Resolvi isso aplicando as seguintes etapas:
No meu caso, o
Microsoft.Cpp.Default.props
arquivo estava localizado em,C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
então eu criei umaVCTragetsPath
string no registroHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
com valorC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
Também fiz meu Jenkins funcionar como usuário administrador
Isso resolveu meu problema.
fonte
Em vez de definir um caminho fixo, tente isso na linha de comando pós-compilação primeiro:
A variável '$ (VCTargetsPath)' parece ser uma macro visual-studio relacionada ao c ++ que não é mostrada em c # -sdk-projects como uma macro, mas ainda está disponível lá.
fonte