c# - latest - web api could not load file or assembly system net http




Não foi possível carregar o arquivo ou assembly 'System.Net.Http.Formatting' ou uma de suas dependências. O sistema não consegue encontrar o caminho especificado (11)

  1. Remova todas as referências de código para System.Net.*
  2. Desinstalar: Pacote Microsoft.AspNet.WebApi e suas dependências.
  3. Reinstale tudo: Pacote Microsoft.AspNet.WebApi e suas dependências.
  4. Limpe e reconstrua seu projeto

Eu tenho um pequeno aplicativo MVC que eu uso por razões práticas, mas agora estou encontrando 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.

Eu pesquisei 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.


Como originalmente sugerido em um comentário por 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

Update-Package -ProjectName MyProjectName -reinstall

Eu estava enfrentando o mesmo problema porque

System.Net.Http.Formatting

versão escrita dentro webconfig foi 5.0.3, mas dentro da pasta bin a biblioteca dll System.Net.Http.Formatting versão foi 4.0.2

então eu acabei de substituir com o mesmo dado dentro bin

basta fazer este projeto limpo e construir


No meu caso, nenhum dos itens acima funcionou, no entanto, substituir 5.2.3.0 por 4.0.0.0 resolveu o problema.


O que eu fiz para resolver este problema é

  1. Vá para o gerenciador de pacotes NuGet.

  2. Selecione Atualizações (no painel esquerdo)

  3. Atualizar componentes do WebApi

  4. Depois disso, o projeto foi executado sem erros.


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 pela resposta, mas acho que vale a pena responder porque resolveu para mim.


Para mim adicionando alguns abaixo linha no WebApi.config funciona como depois de atualizar o novo pacote nuget não deu certo

var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;

Não esqueça de adicionar namespace:

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;

Para mim foi tão simples quanto

  1. Exclua o Microsoft.AspNet.WebApi.Client da pasta de pacotes no Windows Explorer
  2. Abra Ferramentas> Gerenciador de Pacotes NuGet> Console do Gerenciador de Pacotes
  3. Clique no botão "Restaurar"

Remover as seguintes linhas do web.config resolveu o meu problema. Note que neste projeto não usei componentes WebApi. Portanto, para outras pessoas, essa solução pode não funcionar como esperado.

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>

Sempre que eu tenho um erro de NuGet, como esses, eu geralmente faço o seguinte:

  1. Vá para a pasta packages no Windows Explorer e exclua-a.
  2. Abra o Visual Studio e vá para Ferramentas > Gerenciador de Pacotes da Biblioteca > Configurações do Gerenciador de Pacotes e sob o item Gerenciador de Pacotes no lado esquerdo há um botão "Limpar Cache de Pacotes". Clique nesse botão e verifique se a caixa de seleção "Permitir que o NuGet baixe pacotes ausentes durante a compilação" está marcada.
  3. Limpe a solução
  4. Em seguida, clique com o botão direito do mouse na solução no Gerenciador de Soluções e ative a Restauração do Pacote NuGet
  5. Construa a solução

Tomando todas estas etapas quase sempre restaura todos os pacotes e dll que eu preciso para o meu programa MVC.

EDITAR >>>

Para o Visual Studio 2013 e posterior, a etapa 2) deve ler:

  1. Abra o Visual Studio e vá para Ferramentas > Opções > Gerenciador de Pacotes NuGet e no lado direito há um "botão Limpar Cache de Pacotes". Clique nesse botão e verifique se as caixas de seleção "Permitir que o NuGet baixe os pacotes ausentes" e "Verificar automaticamente se há pacotes ausentes durante a compilação no Visual Studio" estão marcadas.

  • 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





asp.net-mvc-4