Tidak dapat memuat file atau rakitan 'System.Net.Http.Formatting' atau salah satu dari dependensinya. Sistem tidak mampu menemukan jalur yang ditentukan

158

Saya memiliki aplikasi MVC kecil yang saya gunakan untuk alasan latihan, tetapi sekarang saya menemukan kesalahan setiap kali saya mencoba untuk debug:

Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. 
The system cannot find the path specified.

Saya sudah googled tetapi tidak dapat menemukan solusi. Saya menggunakan .NET 4.5.

Tidak dapat berupa file DLL karena saya menggunakan .Net 4.5.

Norris
sumber
1
lihat ketergantungan di sini .. nuget.org/packages/System.Net.Http.Formatting
Vishal Sharma
Saya mencoba itu dan itu tidak berhasil ... Alih-alih saya mendapatkan kesalahan pada Package Manager mengatakan 'NuGetCmdletUnhandledException, NuGet.PowerShell.Commands.InstallPackageCommand'
Norris

Jawaban:

185

Setiap kali saya memiliki kesalahan NuGet seperti ini saya biasanya mengambil langkah-langkah ini:

  1. Buka folder paket di Windows Explorer dan hapus.
  2. Buka Visual Studio dan Buka Tools > Library Package Manager > Pengaturan Package Manager dan di bawah item Package Manager di sebelah kiri ada tombol "Clear Package Cache". Klik tombol ini dan pastikan bahwa kotak centang untuk "Izinkan NuGet mengunduh paket yang hilang selama pembuatan" dicentang.
  3. Bersihkan solusinya
  4. Kemudian klik kanan solusi di Solution Explorer dan aktifkan NuGet Package Restore
  5. Bangun solusinya
  6. Mulai ulang Visual Studio

Mengambil semua langkah ini hampir selalu mengembalikan semua paket dan lain-lain yang saya butuhkan untuk program MVC saya.


Sunting >>>

Untuk Visual Studio 2013 dan di atasnya, langkah 2) harus membaca:

  1. Buka Visual Studio dan pergi ke Alat > Opsi > Manajer Paket NuGet dan di sisi kanan ada "tombol Hapus Paket Cache". Klik tombol ini dan pastikan bahwa kotak centang untuk "Izinkan NuGet mengunduh paket yang hilang" dan "Secara otomatis centang untuk paket yang hilang selama pembuatan di Visual Studio" dicentang.
Jordan_Walters
sumber
7
Ini berhasil ... Mengatasi masalah ... Terima kasih Jordan_Walters ... Saya tidak punya cukup perwakilan untuk memberikan suara ... jika tidak, bantuan Anda akan lebih dihargai
Norris
10
Saran yang bagus tetapi tidak memperbaiki masalah saya dengan "Tidak dapat memuat file atau perakitan 'System.Net.Http.Formatting' atau salah satu dari ketergantungannya. Sistem tidak dapat menemukan jalur yang ditentukan". Bagi saya, saya harus pergi ke Tools / NuGet Package Manager / Package Manager Console dan kemudian "Update-Package -ProjectName MyProject -reinstall". Semuanya sudah diperbaiki!
GeoMac
3
@YuraZaletskyy saya pikir itu dalam $ {SolutionDir} / paket /. Yaitu folder solusi root.
jakejgordon
1
Kiat-kiat hebat, terima kasih, mereka benar-benar membantu saya. Saya harap Anda tidak keberatan bahwa saya menambahkan beberapa informasi lebih lanjut untuk mencerminkan versi Visual Studio nanti.
Sheridan
1
Saya mengikuti di atas dan kesalahan tetap - saya secara manual melihat versi dll dan ketika saya memeriksa file web.config saya ada entri duplikat, tinggalkan satu entri untuk mencocokkan versi dll Anda dan semuanya harus bekerja - itu untuk saya
JazziJeff
168
  • Hapus semua referensi kode System.Net.*

  • di jendela paket,

    Install-Package Microsoft.AspNet.WebApi.Client

  • Bersihkan dan bangun kembali proyek Anda

pengguna3919888
sumber
2
Saya baru saja mengalami masalah ini dan saya menginstal versi paket NuGet terbaru dari Microsoft.AspNet.WebApi.Client dan kemudian saya melihat System.Net.Http.Formatting dalam daftar referensi saya.
ewomack
Saya mencoba segalanya. Ini adalah satu-satunya yang bekerja untuk saya.
Timothy Kanski
Bekerja untukku. Pastikan Anda menginstal versi yang benar.
CrusherJoe
1
Solusi ini bekerja setelah saya update saya Web.Config bindingRedirectuntuk System.Net.Http.Formattingdan System.Web.Httpke yang baru diinstal oleh perintah di atas ... yaitu ia pergi dari <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>ke<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Serj Sagan
Apakah ini masalahnya bahwa banyak di antara kita yang tidak memiliki paket NuGet Microsoft.AspNet.WebApi.Client?
carlin.scott
27

Saya menemukan tambahan

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
  </dependentAssembly>

di web.config saya. dihapus itu untuk membuatnya berfungsi. beberapa paket lain yang saya instal, dan kemudian dihapus menyebabkan masalah.

realPT
sumber
bagaimana Anda tahu apa token publik dari versi tersebut? b03f5f7f11d50a3a
eran otzap
Ini ditambahkan secara otomatis oleh perintah konsol paket manajer: Add-BindingRedirect *
Simon Hughes
18

user3919888 mengarahkan saya ke arah yang benar, tetapi saya harus menjalankannya Update-Package -reinstall Microsoft.AspNet.WebApi.Clientdi konsol Package-Manager. Instalasi dasar dengan sendirinya tidak mengenali masalah tetapi mengakui bahwa paket sudah diinstal dan tidak menimpanya.

Saya memposting jawaban ini karena hal ini sangat jarang terjadi sehingga saya akhirnya googling dan mencapai halaman ini sebelum saya ingat apa yang saya lakukan terakhir kali.

jalan terpanjang
sumber
16

Menghapus baris berikut dari web.configmenyelesaikan masalah saya. Perhatikan bahwa dalam proyek ini saya tidak menggunakan komponen WebApi. Jadi bagi orang lain solusi ini mungkin tidak berfungsi seperti yang diharapkan.

  <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>
Mahmoud Moravej
sumber
bagaimana Anda tahu apa token publik dari versi tersebut?
eran otzap
Seperti yang saya tahu itu adalah token publik dari semua Microsoft dll terlepas dari versi mereka.
Mahmoud Moravej
Untuk menjadi lucu saya menambahkan baris-baris ini dan itu membantu.
Krzysztof Madej
Itu memperbaiki masalah bagi saya juga.
Vishal
Ini memecahkan masalah saya juga. Saya telah mengonversi proyek Situs Web lama ke Aplikasi Web. File Web.config merujuk ke versi 5.2.7, sedangkan paket NuGet yang terinstal adalah 5.2.3. Menghapus ini dari Web.config memperbaiki kesalahan.
Cesar Daniel
9

Bagi mereka yang menggunakan proyek .NET Standard dalam kombinasi dengan .NET Framework proyek :

Dengan cara .NET Standard, paket yang termasuk dalam proyek .NET Standard akan digunakan dengan benar di seluruh proyek .NET Core dan .NET Standard lainnya.

Sebagai cara .NET Framework, jika Anda merujuk ke proyek .NET Standard dari proyek .NET Framework (MVC), Anda perlu mengunduh dan menginstal paket nuget yang sama secara manual.

Jadi jawaban untuk pertanyaan saya adalah bahwa saya harus mengunduh dan menginstal Microsoft.AspNet.WebApi.Clientproyek web (.NET Framework) yang menggunakan proyek .NET Standar di mana Microsoft.AspNet.WebApi.Clientdiperlukan. Sebenarnya, saya sudah menginstal ini tetapi ada perbedaan versi.

Saya hanya menambahkan jawaban ini untuk dilihat orang lain, mungkin tidak langsung menjawab pertanyaan OP tetapi itu menghemat waktu saya dengan terlebih dahulu memeriksa ini alih-alih melakukan jawaban terpilih.

CularBytes
sumber
1
Saya menggunakan .NET Core dan menemukan panduan untuk mengejek HttpClient di gingter.org/2018/07/26/… . Mengikuti panduan itu memberi saya masalah yang dijelaskan dalam pertanyaan OP. Dan Anda solusinya memperbaiki masalah :)
Thorkil Værge
Inilah yang bekerja untuk saya. Mencoba pendekatan yang direkomendasikan, menghapus dan memulihkan semua paket, tetapi pada akhirnya saya harus menggunakan Nuget untuk menginstal Microsoft.AspNet.WebApi.Client memastikan itu adalah versi yang saya butuhkan dan semua itu baik setelah itu,
TH Todorov
Jawaban yang bagus - Saya mulai berpikir saya perlu memindahkan semuanya kembali ke Kerangka Kerja!
d219
6
  1. Hapus semua referensi kode System.Net.*
  2. Copot pemasangan: Paket Microsoft.AspNet.WebApidan dependensinya.
  3. Instal ulang semua: Paket Microsoft.AspNet.WebApidan dependensinya.
  4. Bersihkan dan bangun kembali proyek Anda
Sandeep
sumber
Terima kasih! Anda menyelamatkan saya setelah 2 hari mencoba putus asa. Itu hampir membuatku gila.
Marek Dorda
5

Seperti yang awalnya disarankan dalam komentar oleh GeoMac dan didokumentasikan pada dokumen NuGet berikut ini bekerja untuk saya ketika tidak ada jawaban lain yang bekerja:

Tools / Manajer Paket NuGet / Konsol Manajer Paket

Update-Package -ProjectName MyProjectName -reinstall
bbodenmiller
sumber
Saya memiliki Visual Studio 2015. Inilah yang harus saya lakukan, memperbaikinya secara instan.
Damian C
3

Dalam kasus saya tidak ada solusi di atas yang berfungsi. Saya menyelesaikannya dengan mengklik kanan pada referensi

System.Net.Http.Formatting

dari Visual studio dan mengatur properti Copy Local ke true .

Saya harap ini bermanfaat entah bagaimana.

Hugo Nava Kopp
sumber
2
saya melakukan itu dan itu masih terjadi
eran otzap
2

Yang memecahkan kesalahan yang mengganggu ini bagi saya adalah menutup Visual Studio dan membukanya lagi. Kemudian bangun kembali solusinya, dan semuanya bekerja lagi. Maaf untuk jawaban omong kosong, tapi saya pikir itu layak untuk dijawab karena itu menyelesaikannya untuk saya.

andreasnico
sumber
1
Ini semua yang diperlukan untuk saya juga
Steve Vermeulen
1

Bagi saya itu sesederhana

  1. Hapus Microsoft.AspNet.WebApi.Clientdari folder paket di Windows Explorer
  2. Buka Alat> Manajer Paket NuGet> Konsol Manajer Paket
  3. Klik tombol "Pulihkan"
adam0101
sumber
1

Namun, dalam kasus saya, tidak ada yang di atas yang berfungsi, menggantikan 5.2.3.0 dengan 4.0.0.0 yang menyelesaikan masalah.

Sebastián Vansteenkiste
sumber
1

Saya menghadapi masalah yang sama karena

System.Net.Http.Formatting

versi yang ditulis di dalam webconfig adalah 5.0.3 tetapi di dalam folder bin perpustakaan System.Net.Http.Formatting dll versi adalah 4.0.2

jadi saya hanya mengganti dengan yang sama di dalam bin

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

lakukan saja proyek dan pembangunan bersih ini

TAHA SULTAN TEMURI
sumber
0

Mungkin Anda perlu menetapkan referensi pustaka sebagai "Salin Lokal = Benar" pada dialog properti. Pada visual studio klik "referensi" lalu klik kanan pada referensi yang hilang, dari properti klik menu konteks, Anda akan melihat menyalin pengaturan lokal.

memotong rumput
sumber
0

Bagi saya menambahkan beberapa baris di bawah ini di WebApi.config berfungsi karena setelah memperbarui paket nuget baru tidak berhasil

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

Jangan lupa menambahkan namespace:

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;
ashish Vicky
sumber
pastikan untuk memeriksa dependensi proyek dengan mengklik kanan pada file solusi dan kemudian di bawah properti umum-> dependensi proyek memeriksa proyek di mana kesalahan dilemparkan atau periksa nama proyek di mana solusi tergantung
ashish Vicky
0

Apa yang saya lakukan untuk menyelesaikan masalah ini adalah

  1. Pergi ke manajer paket NuGet.

  2. Pilih Pembaruan (dari panel kiri)

  3. Perbarui komponen WebApi

  4. Setelah itu, proyek berjalan tanpa kesalahan.

Raj
sumber
0

VS2019: Alat -> Pengelola Paket Nuget -> Pengaturan Pengelola Paket -> di bagian Pemulihan Paket, periksa 2 opsi. Setelah itu, pergi ke folder paket proyek dan hapus semua folder anak di dalamnya (untuk tidak ada lagi kesalahan) Kemudian solusi Rebuild, Nuget akan mengunduh ulang semua paket dan proyek harus berjalan tanpa referensi.

cucu
sumber
0

Saya punya masalah dengan proyek ASP.NET di VS 2019.

Gejala lain adalah, bahwa beberapa referensi (System.Web.Http) ditandai sebagai salah dalam daftar referensi proyek (Solution Explorer)

Solusi saya:

  1. Hapus referensi yang salah dalam Proyek -> Referensi (klik kanan, ...)
  2. Membangun
  3. Arahkan ke galat build "Tipe atau nama namespace [...] tidak dapat ditemukan" atau serupa
  4. Gunakan "Tampilkan potensi perbaikan" -> Instal paket

Penyebab:

Melihat perbedaan dalam file csproj saya bisa melihat alasan masalah. Seseorang berhasil mereferensi DLL di folder file Program Windows!

<Reference Include="System.Web.Http">
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
Daniel Hillebrand
sumber