Eu tenho um aplicativo MVC pequeno que uso por motivos de prática, mas agora encontro um erro toda vez que tento depurar:
Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies.
The system cannot find the path specified.
Pesquisei no Google, mas não consigo encontrar uma solução. Estou usando o .NET 4.5.
Não pode ser o arquivo DLL porque estou usando o .Net 4.5.
c#
asp.net
.net
asp.net-mvc-4
Norris
fonte
fonte
Respostas:
Sempre que tenho um erro do NuGet como esses, geralmente tomo as seguintes medidas:
A realização de todas essas etapas quase sempre restaura todos os pacotes e dlls necessários para o meu programa MVC.
EDIT >>>
Para o Visual Studio 2013 e superior, a etapa 2) deve ler:
fonte
Remova todas as referências de código para
System.Net.*
na janela do pacote,
Install-Package Microsoft.AspNet.WebApi.Client
Limpe e reconstrua seu projeto
fonte
Web.Config
bindingRedirect
paraSystem.Net.Http.Formatting
eSystem.Web.Http
para o novo instalado pelo comando acima ... ou seja, passou de<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
para<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Eu achei um extra
no meu web.config. removido isso para fazê-lo funcionar. algum outro pacote que instalei e depois removi causou o problema.
fonte
user3919888 me apontou na direção certa, mas eu precisava executar
Update-Package -reinstall Microsoft.AspNet.WebApi.Client
no console do Package-Manager. A instalação básica por si só não reconhece o problema, mas reconhece que o pacote já está instalado e não o substitui.Estou postando esta resposta porque isso acontece com pouca frequência e acabo pesquisando e acessando esta página antes de me lembrar do que fiz da última vez.
fonte
A remoção das seguintes linhas
web.config
resolveu o meu problema. Observe que neste projeto eu não usei componentes WebApi. Portanto, para outros, essa solução pode não funcionar como esperado.fonte
Para aqueles que usam o projeto .NET Standard em combinação com projetos do .NET Framework :
Da maneira .NET Standard, os pacotes incluídos em um projeto .NET Standard serão usados corretamente em outros projetos .NET Core e .NET Standard.
Na maneira do .NET Framework, se você estiver se referindo a um projeto .NET Standard de um projeto .NET Framework (MVC), precisará baixar e instalar manualmente os mesmos pacotes de nuget.
Portanto, a resposta para minha pergunta foi que eu tinha que baixar e instalar
Microsoft.AspNet.WebApi.Client
no projeto web (.NET Framework) que está usando um projeto .NET Standard ondeMicrosoft.AspNet.WebApi.Client
é necessário. Na verdade, eu já tinha isso instalado, mas havia uma diferença de versão.Acabei de adicionar esta resposta para que outras pessoas vejam, ela pode não responder diretamente à pergunta da OP, mas economizou tempo, verificando-a primeiro em vez de fazer as respostas mais votadas.
fonte
System.Net.*
Microsoft.AspNet.WebApi
e suas dependências.Microsoft.AspNet.WebApi
e suas dependências.fonte
Conforme sugerido originalmente em um comentário do GeoMac e documentado nos documentos do NuGet, o seguinte funcionou para mim quando nenhuma das outras respostas funcionou:
Ferramentas / Gerenciador de Pacotes NuGet / Console do Gerenciador de Pacotes
fonte
No meu caso, nenhuma das soluções acima funcionou. Eu resolvi clicando com o botão direito do mouse na referência
do Visual studio e definindo a propriedade Copy Local como true .
Espero que isso seja útil de alguma forma.
fonte
O que resolveu esse erro irritante para mim foi apenas fechar o Visual Studio e abri-lo novamente. Em seguida, reconstrua a solução e tudo funcionou novamente. Desculpe a resposta porcaria, mas acho que vale a pena uma resposta porque ela resolveu para mim.
fonte
Para mim, era tão simples quanto
Microsoft.AspNet.WebApi.Client
da pasta de pacotes no Windows Explorerfonte
No meu caso, nenhuma das opções acima funcionou, no entanto, a substituição do 5.2.3.0 por 4.0.0.0 resolveu o problema.
fonte
Eu estava enfrentando o mesmo problema porque
A versão gravada dentro do webconfig era 5.0.3, mas dentro da pasta bin, a biblioteca DLL System.Net.Http.Formatting era 4.0.2.
então eu acabei de substituir pelo mesmo bin dentro
basta fazer este projeto limpo e construir
fonte
Provavelmente, você precisa definir a referência da biblioteca como "Copiar Local = True" na caixa de diálogo de propriedades. No visual studio, clique em "referências" e, em seguida, clique com o botão direito do mouse na referência ausente. No menu de contexto, clique em Propriedades, você verá a configuração local de cópia.
fonte
Para mim, adicionar algumas linhas abaixo no WebApi.config funciona, pois após a atualização do novo pacote nuget não funcionou
Não se esqueça de adicionar espaço para nome:
fonte
O que eu fiz para resolver esse problema é
Vá para o gerenciador de pacotes do NuGet.
Selecione Atualizações (no painel esquerdo)
Atualizar componentes WebApi
Depois disso, o projeto foi executado sem erros.
fonte
VS2019: Ferramentas -> Gerenciador de Pacotes Nuget -> Configuração do Gerenciador de Pacotes -> na seção Restauração de Pacotes, marque 2 opções. Depois disso, vá para a pasta de pacotes do projeto e exclua todas as pastas filho dentro (para não haver mais erros). Em seguida, Reconstrua a solução, o Nuget fará o download novamente de todos os pacotes e o projeto deverá ser executado sem nenhuma referência.
fonte
Eu tive o problema com um projeto ASP.NET no VS 2019.
Outro sintoma foi que algumas referências (System.Web.Http) foram marcadas como defeituosas na lista de referências do projeto (Solution Explorer)
Minha solução:
A causa:
Observando a diferença no arquivo csproj, pude ver o motivo do problema. Alguém conseguiu fazer referência a uma DLL na pasta de arquivos do programa Windows!
fonte