Dosya veya montaj 'System.Net.Http.Formatting' veya bağımlılıklarından biri yüklenemedi. Sistem belirtilen yolu bulamıyor


158

Ben pratik nedenlerle kullandığım küçük bir MVC uygulaması var, ama şimdi her hata ayıklamaya çalıştığınızda bir hatayla karşılaşıyorum:

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

Google'ı aradım ama bir çözüm bulamıyorum. .NET 4.5 kullanıyorum.

.Net 4.5 kullanıyorum çünkü DLL dosyası olamaz.


1
bağımlılığı buraya bakın .. nuget.org/packages/System.Net.Http.Formatting
Vishal Sharma

Bunu denedim ve işe yaramadı ... Bunun yerine Paket Yöneticisi'nde 'NuGetCmdletUnhandledException, NuGet.PowerShell.Commands.InstallPackageCommand'
Norris

Yanıtlar:


185

Ne zaman bu gibi bir NuGet hatası var ben genellikle şu adımları:

  1. Windows Gezgini'ndeki paketler klasörüne gidin ve silin.
  2. Visual Studio'yu açın ve Araçlar > Kütüphane Paket Yöneticisi > Paket Yöneticisi Ayarları'na gidin ve sol taraftaki Paket Yöneticisi öğesinin altında bir "Paket Önbelleğini Temizle" düğmesi bulunur. Bu düğmeyi tıklayın ve "NuGet'in derleme sırasında eksik paketleri indirmesine izin ver" onay kutusunun işaretli olduğundan emin olun.
  3. Çözeltiyi temizleyin
  4. Ardından Solution Explorer'da (Çözüm Gezgini) çözümü sağ tıklayın ve NuGet Package Restore'u etkinleştirin
  5. Çözümü oluşturun
  6. Visual Studio'yu yeniden başlat

Tüm bu adımları alarak neredeyse her zaman tüm paketleri ve dll benim MVC programı için gereken geri yükler.


DÜZENLE >>>

Visual Studio 2013 ve üstü için 2. adım) şunları okumalıdır:

  1. Visual Studio'yu açın ve Araçlar > Seçenekler > NuGet Paket Yöneticisi'ne gidin ve sağ tarafta bir "Paket Önbelleğini Temizle düğmesi" bulunur. Bu düğmeyi tıklatın ve "NuGet'in eksik paketleri indirmesine izin ver" ve "Visual Studio'da oluşturma sırasında eksik paketleri otomatik olarak denetle" onay kutularının işaretli olduğundan emin olun.

7
Bu işe yaradı ... Sorun çözüldü ... Teşekkürler Jordan_Walters ... Oy vermek için yeterli Temsilcim yok ... aksi takdirde yardımın çok takdir edildi
Norris

10
İyi bir tavsiye ama "Dosya veya montaj 'System.Net.Http.Formatting' veya bağımlılıklarından biri yüklenemedi. Sistem belirtilen yolu bulamıyor" ile ilgili sorunumu çözmedi. Benim için Araçlar / NuGet Paket Yöneticisi / Paket Yöneticisi Konsolu'na ve ardından "Update-Package -ProjectName MyProject -reinstall" a gitmem gerekiyordu. Her şey düzeltildi!
GeoMac

3
@YuraZaletskyy Sanırım $ {SolutionDir} / Packages / içinde. Yani kök çözüm klasörü.
jakejgordon

1
Harika ipuçları, teşekkürler, bana gerçekten yardımcı oldular. Umarım Visual Studio'nun sonraki sürümlerini yansıtacak bazı bilgiler ekledim.
Sheridan

1
Yukarıdakileri takip ettim ve hata kaldı - dll sürümüne el ile baktım ve web.config dosyamı kontrol ettiğimde yinelenen girişler vardı, sadece dll sürümünüze uyacak tek bir giriş bırakın ve her şey işe yaradı - benim için yaptı
JazziJeff

168
  • İçin tüm kod referanslarını kaldır System.Net.*

  • paket penceresinde,

    Install-Package Microsoft.AspNet.WebApi.Client

  • Projenizi temizleyin ve yeniden oluşturun


2
Ben sadece bu sorunla karşılaştı ve Microsoft.AspNet.WebApi.Client en son NuGet paket sürümünü yükledim ve sonra referanslar listemde System.Net.Http.Formatting gördüm.
ewomack

Diğer her şeyi denedim. Benim için çalışan tek kişi bu.
Timothy Kanski

Benim için çalıştı. Doğru sürümü yüklediğinizden emin olun.
CrusherJoe

1
Ben benim güncellenen sonra bu çözüm çalıştı Web.Config bindingRedirectiçin System.Net.Http.Formattingve System.Web.Httpyukarıdaki komutla tarafından yüklenen yenisine o gitti yani ... <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>için<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Serj Sagan

O zaman çoğumuzda Microsoft.AspNet.WebApi.Client NuGet paketinin eksik olması söz konusu mudur?
carlin.scott

27

Ekstra buldum

  <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>

web.config dosyamda. işe almak için kaldırıldı. yüklediğim ve kaldırdığım diğer bazı paketler soruna neden oldu.


sürümün genel belirtecinin ne olduğunu nasıl anlarsınız? b03f5f7f11d50a3a
eran otzap

Paket yöneticisi konsol komutu tarafından otomatik olarak eklenir: Add-BindingRedirect *
Simon Hughes

18

user3919888 bana doğru yönü gösterdi, ancak Update-Package -reinstall Microsoft.AspNet.WebApi.ClientPackage-Manager konsolunda çalıştırmam gerekiyordu . Temel kurulum tek başına sorunu tanımıyor ancak paketin zaten kurulu olduğunu ve üzerine yazılmadığını kabul ediyor.

Bu yanıtı gönderiyorum çünkü bu çok seyrek oluyor, son kez ne yaptığımı hatırlamadan önce bu sayfaya girip bu sayfaya ulaşıyorum.


16

Aşağıdaki satırları kaldırmak web.configsorunumu çözdü. Bu projede WebApi bileşenlerini kullanmadığımı unutmayın. Yani diğerleri için bu çözüm beklendiği gibi çalışmayabilir.

  <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>

sürümün genel belirtecinin ne olduğunu nasıl anlarsınız?
eran otzap

Bildiğim gibi onların sürümü ne olursa olsun tüm Microsoft dlls genel belirteci olduğunu.
Mahmoud Moravej

Komik olmak için bu satırları ekledim ve yardımcı oldu.
Krzysztof Madej

Bu benim için de sorunu çözdü.
Vishal

Bu benim sorunumu da çözdü. Eski bir Web Sitesi projesini Web Uygulamasına dönüştürdüm. Yüklü NuGet paketi 5.2.3 iken, Web.config dosyası 5.2.7 sürümüne başvuruyordu. Bunu Web.config dosyasından silmek hatayı düzeltti.
Cesar Daniel

9

.NET Framework projeleriyle birlikte .NET Standard projesini kullananlar için :

.NET Standardı yolunda, bir .NET Standard projesinde bulunan paketler diğer .NET Core ve .NET Standard projelerinde doğru şekilde kullanılır.

Bir .NET Framework (MVC) projesinden bir .NET Standard projesine başvuruyorsanız, .NET Framework yolundayım, aynı nuget paketlerini manuel olarak indirmeniz ve yüklemeniz gerekir.

Bu yüzden sorumun cevabı , gerektiğinde Microsoft.AspNet.WebApi.Clientbir .NET Standard projesi kullanan web projesine (.NET Framework) indirip kurmam Microsoft.AspNet.WebApi.Clientgerektiğiydi. Aslında, bunu zaten yükledim ama bir sürüm farkı vardı.

Bu cevabı başkalarının görmesi için ekliyorum, OP'nin sorusuna doğrudan cevap vermeyebilir, ancak en çok oy alan cevapları yapmak yerine ilk önce bunu kontrol ederek bana zaman kazandırdı.


1
.NET Core kullanıyorum ve HttpClient'i gingter.org/2018/07/26/… ' de alay etmek için bir rehber buldum . Bu rehberin ardından bana OP'nin sorusunda açıklanan problemi verdi. Ve çözüm sorunu düzeltti :)
Thorkil Værge

Bu benim için işe yaradı. Önerilen yaklaşımı denedim, tüm paketleri kaldırarak ve geri yükledim, ama sonunda Microsoft.AspNet.WebApi.Client'i kurmak için Nuget kullanmak zorunda kaldım ve ihtiyacım olan sürüm olduğundan ve hepsinin bundan sonra iyi olduğundan emin olduk
TH Todorov

Harika cevap - Her şeyi tekrar Çerçeveye taşımam gerektiğini düşünmeye başladım!
d219

6
  1. İçin tüm kod referanslarını kaldır System.Net.*
  2. Kaldır: Paket Microsoft.AspNet.WebApive bağımlılıkları.
  3. Tümünü yeniden yükle: Paket Microsoft.AspNet.WebApive bağımlılıkları.
  4. Projenizi temizleyin ve yeniden oluşturun

Teşekkür ederim! 2 gün süren umutsuz denemelerden sonra beni kurtardın. Neredeyse beni delirtiyordu.
Marek Dorda

5

Gibi aslen bir yorumda önerdi GeoMac ve üzerinde belgelenmiş Nuget dokümanlarının diğer cevapların hiçbiri çalıştığı şu benim için çalıştı:

Araçlar / NuGet Paket Yöneticisi / Paket Yöneticisi Konsolu

Update-Package -ProjectName MyProjectName -reinstall

Visual Studio 2015'im var. Yapmam gereken buydu, anında düzeltti.
Damian C

3

Benim durumumda yukarıdaki çözümlerin hiçbiri işe yaramadı. Referansı sağ tıklayarak çözdüm

System.Net.Http.Formatting

Görsel stüdyo ve mülkiyet ayarından Kopya Local için gerçek .

Umarım bu bir şekilde faydalıdır.


2
Bunu yaptım ve hala oluyor
eran otzap

2

Benim için bu sinir bozucu hatayı çözen şey, sadece Visual Studio'yu kapatmak ve tekrar açmaktı. Ardından çözümü yeniden oluşturun ve hepsi tekrar çalıştı. Saçma cevap için özür dilerim, ama bence bir cevap vermeye değer çünkü benim için çözdü.


1
Benim için de hepsi
buydu

1

Benim için bu kadar basitti

  1. Microsoft.AspNet.WebApi.ClientWindows Gezgini'ndeki paketler klasöründen silme
  2. Araçlar> NuGet Paket Yöneticisi> Paket Yöneticisi Konsolu'nu açın
  3. "Geri Yükle" düğmesini tıklayın

1

Benim durumumda, yukarıdakilerin hiçbiri işe yaramadı, ancak 5.2.3.0'ın 4.0.0.0 ile değiştirilmesi sorunu çözmedi.


1

Aynı problemle karşılaşıyordum çünkü

System.Net.Http.Formatting

sürümü webconfig içinde yazılmıştır 5.0.3 ancak bin klasörü içinde System.Net.Http.Formatting dll sürümü 4.0.2

bu yüzden sadece içeride verilenle değiştirdim

resim açıklamasını buraya girin

resim açıklamasını buraya girin

sadece bu temiz projeyi yap ve inşa et


0

Muhtemelen, özellikler iletişim kutusunda kütüphane referansını "Yerel Kopyala = Doğru" olarak ayarlamanız gerekir. Visual studio "referansları" tıklayın sonra eksik referansı sağ tıklayın, bağlam menüsünden tıklayın özellikleri, kopya yerel ayarı görmelisiniz.


0

Benim için WebApi.config içinde birkaç satır ekleyerek yeni nuget paketini güncelledikten sonra işe yaramadı

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

Ad alanı eklemeyi unutmayın:

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

Lütfen çözüm dosyasına sağ tıklayarak proje bağımlılığını kontrol ettiğinizden emin olun ve sonra ortak özellikler altında-> proje bağımlılıkları hatanın atıldığı projeyi kontrol edin veya çözümün bağlı olduğu proje adını kontrol edin
ashish Vicky

0

Bu sorunu çözmek için yaptığım şey

  1. NuGet paket yöneticisine gidin.

  2. Güncellemeler'i seçin (soldaki panelden)

  3. WebApi bileşenlerini güncelleme

  4. Bundan sonra proje hatasız çalıştı.


0

VS2019: Araçlar -> Nuget Paket Yöneticisi -> Paket Yöneticisi Ayarı -> Paket Geri Yükleme bölümünde 2 seçeneği işaretleyin. Bundan sonra, proje paketleri klasörüne gidin ve içindeki tüm alt klasörleri silin (artık herhangi bir hata için değil) Sonra çözümü yeniden oluşturun, Nuget tüm paketleri yeniden indirecek ve proje herhangi bir referans olmadan çalışmalıdır.


0

VS 2019'da bir ASP.NET projesinde sorun yaşadım.

Başka bir belirti, bazı başvuruların (System.Web.Http) proje başvuruları listesinde hatalı olarak işaretlenmiş olmasıydı (Solution Explorer)

Çözümüm:

  1. Project -> Referanslar'daki hatalı referansları silin (sağ tıklayın, ...)
  2. İnşa etmek
  3. "Tür veya ad alanı adı [...] bulunamadı" veya benzeri derleme hatalarına gidin
  4. "Olası düzeltmeleri göster" -> Paketi yükle

Neden:

Csproj dosyasındaki farka bakarak sorunun nedenini görebiliyordum . Birisi Windows Program dosya klasöründeki bir DLL'ye başvurmayı başardı!

<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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.