O projeto importado “C: \ Microsoft.CSharp.targets” não foi encontrado

126

Recebi esse erro hoje ao tentar abrir um projeto do Visual Studio 2008 no Visual Studio 2005:

O projeto importado "C: \ Microsoft.CSharp.targets" não foi encontrado.

lomaxx
fonte
Eu tive que renomear minhas referências de Microsoft.CSharp.Targetspara Microsoft.CSharp.targetsnos .csprojarquivos.
Stephane

Respostas:

112

Abra seu arquivo csproj no bloco de notas (ou bloco de notas ++) Encontre a linha:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

e mude para

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
lomaxx
fonte
22
O meu diz: "<Import Project =" $ (MSBuildExtensionsPath32) \ ... "
B. Clay Shannon
@ Iomaxx, corrigi esse problema alterando o Monodevelop Build Target para Mono / .NET 4.0 do Mono / .NET 3.5.
Frank
5
Mina já disse MSBuildBinPath, mas incluiu CompactFramework no espaço de nomes: <Import Projeto = "$ (MSBuildBinPath) \ Microsoft.CompactFramework.CSharp.targets" />
Teysz
Se você estiver usando o Monodevelop, instala os pacotes: "mono-msbuild" e "mono-msbuild-sdkresolver". NOTA: Testado no Linux Manjaro.
Eduardo Lucio
Você precisará remover o pacote "msbuild-stable" (ou equivalente) se estiver instalado. NOTA: Testado no Linux Manjaro.
Eduardo Lucio
59

Esta é uma solução global, não depende de pacote ou compartimento específico.

No meu caso, removi Pacotes pasta do meu diretório raiz.

Talvez isso aconteça porque seus pacotes estão lá, mas o compilador não está encontrando sua referência. então remova primeiro os pacotes antigos e adicione novos.

Etapas para adicionar novos pacotes

  • Primeiro remova a pasta packages ( ela estará próxima ou um passo acima da pasta atual do projeto ).
  • Em seguida, reinicie o projeto ou solução.
  • Agora, reconstrua o arquivo da solução.
  • O projeto receberá novas referências do gerenciador de pacotes nuGet. E seu problema foi resolvido.

Esta não é uma solução adequada, mas eu a publiquei aqui porque enfrento o mesmo problema.

No meu caso, nem consegui abrir minha solução no visual studio e não recebi nenhuma ajuda com outras respostas do SO.

Bharat
fonte
1
Como diz Alf Moh, basta encontrar esse arquivo em outro lugar no seu computador e copiá-lo para a pasta onde ele está procurando por ele
Serj Sagan
@SerjSagan sim, isso vai ajudar, mas às vezes você não pode abrir até mesmo um arquivo de solução no visual studio, naquela época a minha solução vai ajudar ..
Bharat
5
Eu tive esse problema no Visual Studio para Mac, Microsoft.CSharp.targetspor algum motivo , o arquivo foi excluído! como você disse, apaguei a packagespasta e reiniciei o Visual Studio, magicamente funcionou!
A-Sharabiani
1
Isso foi corrigido para mim, mas um colega meu conseguiu fazer isso funcionar pela primeira vez. Enquanto isso funciona, eu tenho outra coisa para encontrar!
JakePlatford
1
Nice one bro! Eu perdi uma hora nisso
Hugo Nava Kopp 29/11
20

Para mim, o problema era que o caminho do projeto continha% 20 caracteres, porque o git os adicionou em vez de espaços quando o repositório foi clonado. Outro problema pode ser se o caminho para um pacote for muito longo.

user2042930
fonte
1
Este foi o problema para mim. O nome do projeto tinha espaço nele, então o nome do diretório após o clone do git tinha o% 20 nele. Você pode usar git clone <RepoUrl> <LocalDirName>para especificar o nome do diretório no qual clonar para evitar o% 20
Dan Cook
11

Esse link no MSDN também ajuda muito a entender o motivo pelo qual ele não funciona. $ (MSBuildToolsPath) é o caminho para Microsoft.Build.Engine v3.5 (inserido automaticamente em um arquivo de projeto quando você cria no VS2008). Se você tentar criar seu projeto para o .Net 2.0, verifique se alterou esse caminho para $ (MSBuildBinPath), que é o caminho para Microsoft.Build.Engine v2.0.

Oleg Sakharov
fonte
11

No meu caso, não consegui carregar um dos cinco projetos na minha solução.

Isso ajudou a fechar o Visual Studio e eu tive que excluir a Microsoft.Net.Compilers.1.3.2 pasta nuget na packagespasta.

Depois, abra sua solução novamente e o projeto foi carregado conforme o esperado

Apenas para ter certeza, feche todas as instâncias do VS antes de excluir a pasta.

Vojta
fonte
6

Eu costumava ter esta seguinte linha no arquivo csproj:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

Depois de excluir este arquivo, ele funciona bem.

appenthused
fonte
6

Se você encontrar o erro que diz Microsoft.CSharp.Core.targets not found, estas são as etapas que tomei para corrigir o meu:

  1. Abra qualquer pasta de projetos em funcionamento anteriores e navegue até o link mostrado no erro, ou seja, Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/e procure o Microsoft.CSharp.Core.targetsarquivo.

  2. Copie esse arquivo e coloque-o no projeto tools folderque não está funcionando (ou seja, navegando até a pasta de ferramentas no projeto que não está funcionando, como mostrado acima)

  3. Agora feche seu projeto (se ele estava aberto) e reabra-o.

Deve estar funcionando agora.

Além disso, para garantir que tudo esteja funcionando corretamente no seu projeto do Visual Studio, agora aberto, vá para Tools > NuGetPackage Manager > Manage NuGet Packages For Solution. Aqui, você pode encontrar um erro que diz que o CodeAnalysis.dll está sendo usado por outro aplicativo.

Mais uma vez, vá para tools folder, encontre o arquivo especificado e exclua-o. Volte para Manage NuGet Packages For Solution. Você encontrará um link que solicitará que você recarregue, clique nele e tudo será reinstalado.

Seu projeto deve estar funcionando corretamente agora.

Alf Moh
fonte
3

Eu consegui isso depois de reinstalar o Windows. O Visual Studio foi instalado e pude ver o tipo de projeto do Silverlight na janela Novo Projeto, mas a abertura de um não funcionou. A solução foi simples: tive que instalar o tempo de execução do Silverlight Developer e / ou o Microsoft Silverlight 4 Tools for Visual Studio. Isso pode parecer estúpido, mas eu o ignorei porque achei que deveria funcionar, pois o tipo de projeto do Silverlight estava disponível.

Peter
fonte
3

No meu caso, abri meu arquivo .csproj no bloco de notas e removi as três linhas a seguir. Funcionou como um encanto:

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
Ben
fonte
2

ok e daí se diz o seguinte: entre os sinais gt / lt

Importar projeto = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets" /

Como faço para corrigir o erro de metas?

Eu também descobri essa sequência de importação em um projeto de demonstração (especificamente "Crie seu próprio MVVM Framework" de Rob Eisenburg).

Se você substituir essa importação pela sugerida pelos relatórios lomaxx VS2010 RTM, será necessário instalá- lo .

Andre Luus
fonte
2

Para erros com Microsoft.WebApplications.targets , você pode:

  1. Instale o Visual Studio 2010 (ou a mesma versão da máquina de desenvolvimento) no servidor TFS.
  2. Copie “ Microsoft.WebApplication.targets” do arquivo da máquina de desenvolvimento para a máquina de construção do TFS.

Aqui está o post.

stack247
fonte
1

Este erro também pode ocorrer ao abrir um projeto do Silverlight que foi construído no SL 4, enquanto você tiver o SL 5 instalado.

Aqui está um exemplo de mensagem de erro: O projeto importado "C: \ Arquivos de Programas (x86) \ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets" não foi encontrado.

Observe a v4.0.

Para resolver, edite o projeto e localize:

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

E mude para a v5.0.

Em seguida, recarregue o projeto e ele será aberto (a menos que você não tenha o SL 5 instalado).

Greg Gum
fonte
0

Excluí a pasta obj e o projeto foi carregado conforme o esperado.

Atron Seige
fonte
0

Às vezes, o problema pode estar na versão VS codificada no arquivo .csproj. Se você tiver em seu csproj algo parecido com isto:

[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"

Você deve verificar se o número está correto (a razão pela qual está errado pode ser que o projeto foi criado com outra versão do Visual Studio). Se estiver errado, substitua-o por sua versão atual das ferramentas de compilação OU use a variável VS:

[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
WholeLifeLearner
fonte
0

Eu me deparei com esse problema ao executar um manual do Ansible, por isso quero adicionar meus 2 centavos aqui. Percebi uma mensagem de aviso sobre a falta do Visual Studio 14. O Visual Studio versão 14 foi lançado em 2015 e a solução para meu problema foi instalar o Visual Studio 2015 Professional na máquina host do meu agente do DevOps do Azure.

Alex
fonte
0

Depois de tentar restaurar, fechar o VS, excluir o pacote com falha, reabrir, tentar restaurar, várias vezes eu apenas apaguei tudo nos pacotes e quando fiz uma restauração e funcionou perfeitamente.

Digno7
fonte