A tarefa BuildTasks.Csc não pôde ser carregada do assembly?


96

Sinto-me culpado por fazer uma pergunta como esta por aqui, mas estou perplexo e gostaria de receber alguma ajuda.

Um aplicativo da web de prova de conceito foi criado em um PC e colocado em um repositório para fazer o download em outro PC em um local diferente. Havia originalmente um recurso de compilação automática configurado onde o Azure iria compilar e publicar automaticamente no check-in, mas foi removido. As coisas estavam funcionando em ambas as extremidades até que um lado incluiu uma grande quantidade de alterações excluídas. Agora estou vendo o seguinte erro:

A tarefa "Microsoft.CodeAnalysis.BuildTasks.Csc" não pôde ser
carregada do assembly ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll. Não foi possível carregar o arquivo ou assembly 'file: /// ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado. Confirme se a declaração está correta, se o assembly e todas as suas dependências estão disponíveis e se a tarefa contém uma classe pública que implementa Microsoft.Build.Framework.ITask.

Alguém tem alguma sugestão sobre por onde começar a procurar o problema?


Respostas:


117

Acontece que os pacotes NuGet estavam comprometidos com o repositório e quebrando tudo. Excluir o diretório project \ project \ packages do repo resolveu todos os problemas de compilação, pois o NuGet busca os pacotes automaticamente na compilação.


Certifique-se de incluir a pasta de pacotes real no VSTS, bem como o conteúdo ... Eu fiz apenas o conteúdo dos pacotes e recebi o erro
SteveC

1
Tenho pacotes nuget comprometidos em todos os meus projetos. O único problema é quando você deseja adicioná-los ao controle de origem, os arquivos * .dll são "itens excluídos" por padrão, portanto, você apenas confirma diretórios vazios em vez de seus nugets. É por isso que nem mesmo restaurar o nuget ajuda, porque os diretórios estão no lugar, então o nuget pensa que está tudo bem.
Jiří Herník de

Uma solução de thread semelhante pode ser encontrada aqui kx.cloudingenium.com/programming/net/…
Pramod Sutar

Não sei porque funcionou ... Qual é a razão?
Richard Duerr

65

Recebi este erro quando criei um novo branch para meu projeto.

Isso me deixou louco por uma hora. Tentei a maioria das sugestões na internet, incluindo a resposta aceita para essa pergunta.

Em seguida, fechei o projeto, abri novamente, limpei e o erro desapareceu. Isso significa que pode ser um problema de cache.

De qualquer forma, só queria compartilhar.


6
Obrigado! Para mim, primeiro foi a pasta do pacote. Então, eu ainda tinha o erro, mas reiniciar o VS funcionou :)
dsnunez

35

Eu também tentei a primeira resposta sem sorte, então apaguei o conteúdo do meu diretório de lixeira e pacotes, fechei e reabri o VS e está tudo bem agora.


1
Este me ajudou. Tentei executar um projeto ASP.NET existente no VS 2015 no Parallels e estava me dando o erro acima. Remover as pastas 'bin' e 'pacotes', reiniciar o VS e uma compilação limpa resolveu o problema!
A3mercúrio

17

Tentei todas as soluções descritas antes, mas nenhuma funcionou.

O que resolveu para mim foi atualizar o Microsoft.Net.Compilers a partir do NuGet Package Manager


2
Eu tive o problema oposto. Eu estava muito otimista e baixei a versão RC mais recente. Quando voltei para a última versão estável, estava tudo bem.
Cool Blue

1
Eu atualizei de 2.8 para 3.1.1 e corrigiu meu problema. Obrigado!
Dan Csharpster

13
  • Clique com o botão direito na sua solução.
  • Vá para Gerenciar Pacotes Nuget.
  • Pesquise Microsoft.Net.Compilers.
  • Instale ou atualize em projetos dependentes conforme necessário.

6

Reconstruir, limpar a solução e reiniciar o Visual Studio funcionou para mim.


1
Sim, o mesmo aqui, porém apenas reiniciar o VS não foi suficiente - tive que reiniciar meu computador, então deu certo.
Billious,

Reiniciar meu computador resolveu o problema. Não tenho certeza se preciso fazer todas as limpezas e reinstalações dos pacotes nuget.
Don Rolling


4

Excluir esses três diretórios resolve o problema.

  • / pacotes
  • / bin
  • / obj

NOTA : exclua / bin e / obj de todos os projetos incluídos na solução (incluindo projetos de teste).


3

O problema se esconde no TFS, você precisa remover a pasta TestProject ... \ packages do TFS, fazer check-in, excluí-lo do seu diretório local e compilar novamente. Funcionou!


3

Excluo tudo da pasta de pacotes e recompilo a solução. Funcionou para mim.


3

Use a etapa abaixo:

1) Exclua a pasta do pacote.
2) feche o estúdio visual.
3) abra o projeto e reconstrua o projeto.



1

No meu caso, a solução foi:

Use o Windows Explorer e navegue até o caminho incorreto: C: \ MyApplication \ Code \ Main \ ABCProject \ ABCProject.UI \ Bin

Clique com o botão direito na pasta bin> selecione propriedades> Desmarque ReadOnly.


1

No meu caso, a solução foi:

  1. Clique com o botão direito na solução.
  2. Vá para Gerenciar Pacotes Nuget para esta Solução.
  3. Pesquise Microsoft.CodeDom.Providers.DotNetCompilerPlatform.
  4. Desinstale o pacote pesquisado.
  5. Reinicie o Visual Studio.


0

Clique com o botão direito na solução. Vá para Gerenciar Pacotes Nuget para esta Solução. Pesquise porMicrosoft.Net.Compilers na seção Navegar.



0

Na comunidade vs2017, apareceu um novo item no menu "construir". Ele desapareceu depois que eu o usei e foi chamado de algo como " Otimizar pacotes de construção de projeto ". Cliquei e ele consertou tudo, é só reiniciar etc. Fiz isso em duas máquinas.

O que ele fez foi removido Microsoft.net.compilers 2.10.0e substituído porMicrosoft.CodeDom.Providers.DotNetCompilerPlatform 2.0.1

Então aí está - mais automagia ...


0

Meu projeto foi construído com .Net Core 2.2, mas eu tinha o .Net Core 3.0 preview instalado. Desinstalei o .Net Core 3.0 do meu sistema e passei por todas as minhas bibliotecas de classe, removendo o Microsoft.Net.Compilers 3.0, depois reconstruí e funcionou.


0

Mudei minha solução de uma unidade para outra, e um dos arquivos não pôde ser copiado porque "está em uso", para o qual clico em ignorado, produzindo o erro descrito neste post. Copiar o arquivo ausente manualmente consertou.

arquivo: Microsoft.Build.Tasks.CodeAnalysis.dll Diretório de destino: packages \ Microsoft.Net.Compilers.2.1.0 \ tools


0

Para mim, eu estava tentando abrir um projeto MVC5 no VS 2013 e estava recebendo este erro, Abri no VS 2017 e acima funcionou muito bem.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.