Tidak dapat memuat file atau rakitan 'Newtonsoft.Json' atau salah satu dari ketergantungannya. Definisi manifes tidak cocok dengan referensi perakitan

216

Hal yang saya coba setelah mencari:

  1. di Web.Config menaruh ikatan pada versi lama:

    <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" />
    </dependentAssembly>
  2. Edit file .csproj saya untuk memastikan hanya ada satu referensi Newtonsoft

    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
       <SpecificVersion>False</SpecificVersion>
       <Private>True</Private>
    </Reference>
  3. Cari komputer saya untuk setiap Newtonsoft.Json.dll dan hapus setiap versi non 6.0.1 dan hapus isi folder temp saya

  4. Perbaiki / Instal ulang paket di nuget manager console

Itu berhasil membangun, tetapi mendapat kesalahan saat pergi ke situs.

EDIT

ok, jadi saya mencoba menginstal ulang seperti setiap paket nuget, dan sepertinya telah menambahkan kembali versi 4,5 dari newtonsoft.json.dll, tapi saya mendapatkan kesalahan yang sama. Target pekerjaan proyek saya adalah .NET 4.5.1 dan berikut ini adalah jejak tumpukan yang saya dapatkan sekarang:

Kesalahan Server dalam Aplikasi '/'.

Tidak dapat memuat file atau perakitan Newtonsoft.Jsonatau salah satu dependensinya. Definisi manifes rakitan yang ditemukan tidak cocok dengan rujukan rakitan. (Pengecualian dari HRESULT: 0x80131040)

Deskripsi: Pengecualian yang tidak ditangani terjadi selama eksekusi permintaan web saat ini. Harap tinjau jejak tumpukan untuk informasi lebih lanjut tentang kesalahan dan dari mana asalnya dalam kode.

Rincian Pengecualian System.IO.FileLoadException:: Tidak dapat memuat file atau perakitan Newtonsoft.Jsonatau salah satu dari dependensinya. Definisi manifes rakitan yang ditemukan tidak cocok dengan rujukan rakitan. (Pengecualian dari HRESULT: 0x80131040)

Kesalahan Sumber:

Pengecualian yang tidak tertangani dihasilkan selama eksekusi permintaan web saat ini. Informasi mengenai asal dan lokasi pengecualian dapat diidentifikasi menggunakan jejak tumpukan pengecualian di bawah ini.

Trace Load Assembly: Informasi berikut dapat membantu untuk menentukan mengapa perakitan Newtonsoft.Jsontidak dapat dimuat.

=== Pre-bind state information ===
LOG: DisplayName = Newtonsoft.Json
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: Newtonsoft.Json | Domain ID: 2
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/
LOG: Initial PrivatePath = c:\users\user\documents\visual studio 2013\Projects\foo\bar\bin
Calling assembly : (Unknown).
 ===
LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\users\user\documents\visual studio 2013\Projects\foo\bar\web.config
LOG: Using host configuration file: C:\Users\user\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/bin/Newtonsoft.Json.DLL.
LOG: Using application configuration file: c:\users\user\documents\visual studio 2013\Projects\foo\bar\web.config
LOG: Using host configuration file: C:\Users\user\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 4.5.0.0 redirected to 6.0.1.0.
LOG: Post-policy reference: Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/bin/Newtonsoft.Json.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

Jejak Tumpukan:

[FileLoadException: Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]

[FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
       System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
       System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34
       System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +16
       System.Reflection.Assembly.Load(String assemblyString) +28
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +38

[ConfigurationErrorsException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +752
       System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +218
       System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130
        System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +170
       System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +91
       System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +285
       System.Web.Compilation.BuildManager.ExecutePreAppStart() +153
       System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
       System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9913572
       System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
       System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18408
noobieDev
sumber
2
Ok, saya pikir saya berhasil sekarang. Saya menghapus setiap Newtonsoft.Json.dll di mesin saya yang bukan versi terbaru yang dapat saya temukan, memastikan saya memiliki versi terbaru di NuGet, dan membangunnya dan memastikan itu adalah yang terbaru di folder bin, dan Saya meninggalkan perubahan di web.config dan .csproj. Sekarang saya kembali ke kesalahan lain, jadi pasti berhasil ...
noobieDev
1
Tambahkan jawaban untuk pertanyaan Anda sehingga orang dapat melihatnya telah diselesaikan? Dan tandai sebagai solusi
Per Hornshøj-Schierbeck
2
Saya mengalami beberapa versi masalah ini bahkan hari ini (3/1/2016) dengan versi 8.0.2. Sedang mencoba memuat versi 6.0.0. Tidak ada file dalam referensi solusi saya 6.0.0. Tidak ada versi 6.0.0. .dll di mana saja di area solusi saya. Saya memiliki banyak salinan newtonsoft.json.dll di komputer saya, dari berbagai versi, mereka digunakan dengan menginstal perangkat lunak pihak ke-3 yang saya tidak ingin main-main dengan. Selain menghapus semua salinan itu, saya sudah mencoba setiap solusi yang disebutkan di seluruh utas ini, dan tidak ada yang berhasil.
Shavais
1
Saya juga menemukan pesan kesalahan ini dari newtonsoft-json ketika saya menambahkan referensi dari satu proyek ke proyek lain tapi .Net Framework dalam proyek berbeda setelah membuat .Net Framework yang sama pada kedua masalah diperbaiki. Tapi saya tidak bisa mengerti bukannya pesan kesalahan Kerangka mengapa ini menunjukkan kesalahan terkait newtonsoft-json.
Sameer
1
Instal versi Newtonsoft.Json yang sama di semua proyek Anda, meskipun mereka tidak menggunakannya.
rubStackOverflow

Jawaban:

274

Untuk mengatasi ini, saya memastikan semua proyek saya menggunakan versi yang sama dengan menjalankan perintah berikut dan memeriksa hasilnya:

update-package Newtonsoft.Json -reinstall

Dan, terakhir saya menghapus yang berikut dari web.config saya:

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  </dependentAssembly>

Jika Anda ingin memastikan semua paket Newtonsoft.Json Anda adalah versi yang sama , Anda dapat menentukan versi seperti:

update-package Newtonsoft.Json -version 6.0.0 -reinstall
pengguna1477388
sumber
17
Hanya menjalankan perintah instal ulang bekerja untuk saya. Saya tidak perlu memodifikasi web.config.
Keith
4
Saya hanya perlu menambahkan tag <dependentAssembly> untuk menghilangkan kesalahan ini.
Nicklas Møller Jepsen
3
Saya harus memberikan versi-nya, tetapi mengabaikan tanda-install untuk membuatnya berfungsi dalam kasus saya.
lagi
1
Saya menggunakan versi terbaru 9.0.1 tetapi menunjukkan kesalahan yang sama. Saya kemudian memeriksa versi dalam file csproj dan itu 9.0.0.0, menambahkan itu ke web.config saya dan masalah terpecahkan. 1. Pastikan versi dalam csproj sama dengan di web.config 2. Hati-hati dengan nomor versi, ia dapat mengatakan x.0.1 ketika versi aktualnya adalah.0.0.0.0, x bisa 6 atau 9 atau apa pun itu. .
Eugene
7
Perhatikan bahwa untuk menjalankan perintah di VS2017, Anda bisa masuk ke Tools -> Nuget Package Manager -> Package Manager Console
Rose
83

Saya menggunakan Newtonsoft.Json v6.0.3, tetapi ini adalah apa yang harus saya lakukan di file Web.config saya:

<dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

Perhatikan bahwa meskipun saya menggunakan 6.0.3, saya harus memasukkan newVersion="6.0.0.0"

Dalam file package.config saya, saya punya:

<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />
CraigV
sumber
1
Sama seperti catatan, saya mencoba mencopot / menghapus / menghapus semua yang dapat saya temukan yang ada hubungannya dengan Newtonsoft.Json, kemudian menggunakan Nuget untuk menginstalnya kembali, tetapi masih menerima kesalahan di atas. Baru setelah saya melakukan perubahan saya menyebutkan bahwa saya bisa membuatnya berfungsi dengan baik.
CraigV
Saya mengalami masalah ini dan menggunakan Assembly Binding Log Viewer untuk membantu mendiagnosisnya. Binder assembly melaporkan v6.0.3 Newtonsoft.Json.dll sebagai v6.0.0.0 sehingga pengalihan akan gagal ketika saya mengonfigurasinya sebagai 6.0.3.
Jason Slocomb
Baris "Catatan" membantu saya. Saya awalnya 9.0.1.19813 sebagai versi baru di bindingRedirect karena itulah yang dikatakan DLL. Inilah yang saya miliki sekarang: <Referensi Sertakan = "Newtonsoft.Json, Versi = 9.0.0.0, Budaya = netral, PublicKeyToken = 30ad4fe6b2a6aeed, prosesorArchitecture = MSIL"> <SpecificVersion> False </SpecificVersion> </Reference> <dependentAsslyly> <assemblyIdentity name = "Newtonsoft.Json" culture = "neutral" publicKeyToken = "30ad4fe6b2a6aeed" /> <bindingRedirect oldVersion = "0,0.0.0-9.0.0.0" newVersion = "9.0.0.0" /> </dependentAssembly>
Mark Seefeldt
62

Saya mencoba yang berikut setelah memastikan bahwa komputer saya memiliki versi yang sama di semua lokasi dan semua proyek saya menunjuk ke jalur referensi yang sama. Saya juga memastikan bahwa pengikatan versi lama adalah milik mereka dan terikat dengan versi dll dari yang saya miliki.

Saya bekerja di lingkungan dengan kerangka kerja yang ketat dan tim kerangka kerja sering merusak versi dengan dll yang berbeda.

Bagaimana saya memperbaiki masalah ini adalah menjalankan konsol manajer paket di dalam visual studio (2013). Dari sana saya menjalankan perintah berikut:

update-package Newtonsoft.Json -reinstall

diikuti oleh

update-package Newtonsoft.Json

Ini melewati dan memperbarui semua file konfigurasi saya dan file proyek yang relevan. Memaksa mereka semua ke versi dll yang sama. Yang awalnya versi 4.5 sebelum memperbarui lagi untuk mendapatkan yang terbaru.

Samuel
sumber
Itu adalah pembaruan yang menyelesaikan masalah bagi saya. Proyek saya diperbarui ke Newtonsoft versi 7.0.
id.ot
Bekerja untukku. Setelah melakukan ini, Penting untuk diperhatikan untuk memastikan file package.config dan web.config Anda memiliki versi yang cocok.
TheValyreanGroup
Bekerja untuk saya ketika dilakukan dari NuGet Package Manager Console terima kasih!
Kbdavis07
25

Saya memiliki pesan kesalahan yang sama dan, seperti yang Anda sebutkan, itu karena versi berbeda dari Newtonsoft.Json.dll direferensikan.

Beberapa proyek dalam solusi MVC saya menggunakan paket NuGet untuk versi 4 dll.

Saya kemudian menambahkan paket NuGet (untuk Salesforce dalam kasus saya) yang membawa Newtonsoft.Json versi 6 dengan itu sebagai ketergantungan pada salah satu proyek. Itulah yang memicu masalah bagi saya.

Untuk membersihkan, saya menggunakan bagian Pembaruan di NuGet Package Manager untuk solusi (dari menu Tools atau klik kanan solusi) untuk memperbarui paket Json.Net di seluruh solusi sehingga itu adalah versi yang sama untuk semua proyek.

Setelah itu saya baru saja memeriksa file App Config untuk memastikan setiap jalur pengalihan yang mengikat menuju ke versi yang saya pilih seperti di bawah ini.

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
S__
sumber
Bagaimana jika DLL memiliki dependensi untuk berbagai versi Newtonsoft.Json untuk aplikasi MVC yang sama? Di sinilah saya terjebak.
Jeremy Ray Brown
Gunakan opsi Konsolidasi dalam manajer paket NuGet untuk memastikan versi tidak terpisah.
niico
17

Ok, saya pikir saya berhasil sekarang. Saya menghapus setiap Newtonsoft.Json.dll di mesin saya yang bukan versi terbaru yang dapat saya temukan, memastikan saya memiliki versi terbaru di NuGet, dan membangunnya dan memastikan itu adalah yang terbaru di folder bin, dan Saya meninggalkan perubahan di web.config dan .csproj. Sekarang saya ke kesalahan lain, jadi itu harus berfungsi ..

noobieDev
sumber
2
Bagaimana Anda menemukan semua lokasi di mesin Anda?
obaylis
saya mendapatkan kesalahan juga ketika mendapatkan proyek oleh server tim pondasi ke pc saya. saya menambahkan referensi newtonsoft ke solution.it saya tidak bekerja. maka saya menginstal json.net (newtonsoft.json) melalui manajer paket nuget. Sekarang ini adalah bekerja dengan baik.
Mohammad Sadiqur Rahman
ada di dalam nama file folder bin - Newtonsoft.Json.dll Hapus file ini dan instal ulang paket atau instal versi yang lebih rendah dan instal ulang versi yang benar menggunakan NuGet-Solution
maddy
7

Dengan mengomentari bagian ini di web.config saya memecahkan masalah saya:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

Tetapi tentu saja Anda perlu memastikan Anda telah memperbarui atau Anda memiliki versi yang tepat dengan melakukan ini di konsol manajer paket Anda:

update-package Newtonsoft.Json -reinstall
Willy David Jr
sumber
4

Saya telah mencoba langkah-langkah oleh Oleg, dan mereka bekerja untuk situasi yang sama.

Langkah:

  1. Jalankan update-package Newtonsoft.Json -reinstalldi Package Manager.

  2. Hapus binfile Anda dengan mengaktifkan melihat file yang tersembunyi dan menghapus binfolder.

  3. Tutup Visual Studio Anda dan buka kembali.

  4. Sekarang jalankan proyek Anda lagi. Saya percaya itu harus baik-baik saja!

Matthew Cavallo
sumber
4

Anda dapat mengatasi masalah ini dengan menambahkan baris di bawah ini dalam file web.config.

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
Jineesh Uvantavida
sumber
3

Dalam kasus saya itu hanya masalah:

Tools -> NuGet Package Manager -> Package Manager Settings -> Clear Cache

Masalahnya disebabkan ketika saya memetakan kembali folder TFS.

daniloquio
sumber
3

Apa yang sebenarnya membantu saya adalah mematikan Resharper build dan menggunakan opsi VisualStudio Re-Build di proyek saya.

Shaulian
sumber
Bagaimana Anda melakukannya?
Naomi
1
Dalam opsi Resharper: Tools -> ReSharper Build -> Build Engine - pilih "Visual Studio"
Shaulian
Saya memasang versi uji coba beberapa waktu lalu (kira-kira sebulan, saya kira) dan kemudian saya juga menonaktifkan ekstensi. Saya tidak melihatnya di Tools, jadi semoga saya baik-baik saja.
Naomi
3

dari Tools >> NuGet Package Manager >> Kelola Paket untuk pembaruan solusi Newtonsoft.Json dari semua solusi untuk Versi terbaru

Goda Kotb
sumber
2

jika Anda bekerja dengan beberapa jenis subversi: hapus proyek dan unduh ulang, itu berhasil untuk saya: S

ch2o
sumber
Jauh tetapi saya harus melakukan ini karena tidak ada solusi lain yang bekerja untuk saya
Mike Resoli
2

Saya memiliki masalah yang sama pada Proyek Uji yang memiliki referensi ke proyek MVC 5. Ini terjadi setelah saya bergabung dengan proyek MVC 5. Saya memperbaikinya dengan menginstal pembaruan Visual studio 2012 seperti yang dijelaskan di sini dalam tanggapan Andre.

  • Di studio visual Anda pergi ke
    1. Alat> Ekstensi dan Pembaruan
    2. Pilih "Pembaruan" di daftar akordeon di sebelah kiri.
    3. Pilih "Pembaruan Produk".
    4. Perbarui ke versi terbaru
Michael Kassa
sumber
Meskipun tautan ini dapat menjawab pertanyaan, lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini dan memberikan tautan untuk referensi. Jawaban khusus tautan dapat menjadi tidak valid jika halaman tertaut berubah
abarisone
Masalah saya telah diperbaiki dengan solusi ini, terima kasih! Saya telah menginstal versi 8.0.1 dan tidak berfungsi sampai saya memperbarui ke VS2013 pembaruan 5
Devin Prejean
2

Saya tidak tahu mengapa, tetapi dalam kasus saya, bahkan jika saya menghapus folder bin dari proyek, ketika saya membangun proyek itu menyalin versi lama dari newtonsoft.json, saya menyalin dll versi baru dari folder paket dan itu diselesaikan untuk saat ini.

mesut
sumber
Saya punya masalah serupa. Dalam solusi saya, saya punya proyek uji. Proyek uji mendapatkan versi 9 di nampan, tetapi proyek yang saya uji memiliki versi 12. Saya menyalin versi 12 dari proyek di bawah folder bin tes ke folder bin tes.
Josh Jay
2

Dalam beberapa kasus jika Anda menghapus Bindan Objfolder Anda akan menyelesaikan masalah ini.

Ivan Ruski
sumber
2

Baiklah, jadi saya kira yang harus dilakukan adalah menambahkan jawaban saya di sini ke daftar panjang ini dibandingkan membuat pertanyaan rangkap ...

Jika Anda mendapatkan ini pada 2019, menggunakan .NET Core 3.0 (Pratinjau saat ini), solusinya adalah untuk memastikan semua proyek menargetkan versi .NET Core yang sama (dalam kasus saya 3.0). Saya pikir saya punya satu proyek dalam solusi yang menargetkan 2.1 dan sisanya adalah 2.2 jadi saya mungkin bisa terjebak dengan 2.2 ...

Saya bahkan tidak memiliki Newtonsoft.Json diinstal di salah satu proyek, dan tentu saja menambahkannya kepada mereka tidak memperbaiki masalah.

Jika Anda memiliki perpustakaan .NET Standard class atau w / e dalam solusi Anda, mereka tidak perlu berada pada versi yang sama, meskipun mereka mungkin yang terbaru yang bisa Anda gunakan. Sebagai contoh, pustaka kelas .NET Standard saya berada di 2.2 karena belum ada .NET Standard 3.0.

jspinella
sumber
1

Tidak ada jawaban, termasuk yang dicentang tidak bekerja untuk saya.

Solusinya jauh lebih sederhana. Saya pertama kali menghapus referensi dari lapisan BUS saya. Kemudian dihapus dll dari proyek (untuk memastikan itu hilang), kemudian instal ulang JSON.NET dari paket nuget. Dan, bagian yang sulit adalah, "mematikan dan menghidupkan lagi".

Saya baru saja memulai kembali studio visual, dan itu berhasil!

Jadi, jika Anda mencoba segala yang mungkin dan masih tidak dapat menyelesaikan masalah, coba matikan dan nyalakan kembali studio visual, ini mungkin bisa membantu.

Zafer Sernikli
sumber
2
Saya pikir Simple adalah sarkasme.
Layak 7
1

Jika tidak ada yang berhasil, silakan periksa jawaban ini:

https://stackoverflow.com/a/12011221/150370

( TL; DR : Hapus namespace xml dari configurationtag di file konfigurasi Anda. Jika tidak, pengalihan yang mengikat akan diabaikan)

Latorre Jerman
sumber
1

Saya mengatasinya dengan menghapus versi lebih rendah dari Newtonsoft.json.dll di folder bin dan menambahkan Newtonsoft.json.dll V6.0.0.0 dan menghapus elemen web.config berikut

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/>
</dependentAssembly>
Alok Kumar
sumber
1

Saya mendapat masalah yang sama dengan dotnet core dan berhasil memperbaikinya dengan membersihkan cache NuGet.

Buka PowerShell dan masukkan perintah berikut.

dotnet nuget locals all --clear

Lalu saya menutup Visual Studio, membukanya lagi dan memasukkan perintah berikut ke dalam Package Manager Console:

Update-Package

NuGet sekarang harus mengembalikan semua paket dan popult kembali cache nuget.

Setelah itu saya bisa membangun dan memulai webapi dotnet core saya di sebuah wadah Linux.

datoml
sumber
1

solusi yang memecahkan masalah saya untuk ini adalah

referensi goto-> klik kanan Newtonsoft.json - properti goto dan periksa versinya

versi yang sama ini harus dalam

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-YourDllVersion" newVersion="YourDllVersion" />
</dependentAssembly>
Er.Imran Shaikh
sumber
0

Langkah mudah. (1) Jalankan "perbarui-paket Newtonsoft.Json-pasang ulang" di manajer paket.

(2) Hapus bin Anda dengan mengaktifkan melihat file yang tersembunyi dan menghapus folder bin.

(3) Tutup studio visual Anda dan buka kembali.

(4) Sekarang jalankan proyek Anda lagi. Saya percaya itu harus baik-baik saja

Odeyinka Olubunmi
sumber
0

Saya mendapatkan masalah ini karena saya punya: project A (desktop .exe) merujuk ke project B (a portable .dll). A & B memiliki versi JSON.Net yang berbeda, sehingga terjadilah konflik pemuat. Setelah saya membuat semua versi JSON.net sama, itu berhasil. (Ini berlaku apa yang dilakukan beberapa solusi di atas - Saya hanya menyebut mengapa ia bekerja)

Mike S
sumber
0

Saya bergumul dengan proyek baru-baru ini dan yang lebih lama.

Saya berhasil melacak masalah setelah memeriksa versi dll yang sebenarnya ada di folder bin.

Saya punya skrip post-build yang menyalin majelis dependen dari folder perpustakaan dll ke folder bin. Pengaturan umum dari hari-hari sebelum nuget.

Jadi setiap kali saya membangun skrip post-build, menggantikan versi Json.net yang benar dengan yang lama

Fredrik Stolpe
sumber
0

Saya memiliki masalah yang sama persis dan Visual Studio 13 default library untuk saya adalah 4,5, jadi saya punya 2 solusi satu mengambil referensi untuk ini di file webconfig. Itu adalah pilihan terakhir dan itu berhasil.

Pesan kesalahan menyatakan ada masalah di lokasi ini /Projects/foo/bar/bin/Newtonsoft.Json.DLL. dimana DLL berada! Pemeriksaan properti dasar mengatakan kepada saya bahwa itu adalah 4.5.0.0 atau sama jadi saya mengubah konfigurasi web untuk mencari hingga 4,5 dan menggunakan 4,5.

Mcole1976
sumber
0

Tidak satu pun dari opsi ini yang bekerja untuk saya, pada akhirnya itu;

Tes> Pengaturan Tes> * .testrunconfig

Saya harus menambahkan baris baru

<DeploymentItem filename="packages\Newtonsoft.Json.4.5.8\lib\net40\Newtonsoft.Json.dll" />

Pastikan jalur dan versinya benar untuk pengaturan Anda.

Daniel Haselden
sumber
0

Saya memiliki masalah yang sama. Saya membuat proyek web api dan kemudian memutakhirkannya dari .net 4.5.1 ke .net 4.6.1. Menutup IDE, menghentikan IIS, dan menghapus konten C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ dir memperbaiki masalah ini.

HTH

Pengembangan Kafein
sumber
0

Masalah ini tidak diselesaikan bagi saya dengan menyegarkan Paket NuGet atau dengan melakukan "Bersihkan" pada proyek. Itu dipecahkan dengan membersihkan folder "obj" secara manual.

Alexander P. Brown
sumber
0

Ini solusi saya untuk masalah ini, pastikan nomor versi di appconfig atau packageconfig sama dengan versi referensi di referensi Anda. Lihat di sini


sumber
0

Dalam kasus saya, pesan kesalahan adalah " versi 6.0.0 ", tetapi versi ini tidak tersedia untuk diinstal, jadi saya menginstal " versi 6.0.1 " di proyek saya dan menyelesaikan masalah saya.

install-package Newtonsoft.Json -Version 6.0.1 -Project MyProjectX
Fabricio Leite
sumber