Hal yang saya coba setelah mencari:
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>
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>
Cari komputer saya untuk setiap Newtonsoft.Json.dll dan hapus setiap versi non 6.0.1 dan hapus isi folder temp saya
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.Json
atau 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 perakitanNewtonsoft.Json
atau 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.Json
tidak 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
sumber
Jawaban:
Untuk mengatasi ini, saya memastikan semua proyek saya menggunakan versi yang sama dengan menjalankan perintah berikut dan memeriksa hasilnya:
Dan, terakhir saya menghapus yang berikut dari web.config saya:
Jika Anda ingin memastikan semua paket Newtonsoft.Json Anda adalah versi yang sama , Anda dapat menentukan versi seperti:
sumber
Saya menggunakan Newtonsoft.Json v6.0.3, tetapi ini adalah apa yang harus saya lakukan di file Web.config saya:
Perhatikan bahwa meskipun saya menggunakan 6.0.3, saya harus memasukkan
newVersion="6.0.0.0"
Dalam file package.config saya, saya punya:
sumber
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:
diikuti oleh
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.
sumber
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.
sumber
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 ..
sumber
Dengan mengomentari bagian ini di web.config saya memecahkan masalah saya:
Tetapi tentu saja Anda perlu memastikan Anda telah memperbarui atau Anda memiliki versi yang tepat dengan melakukan ini di konsol manajer paket Anda:
sumber
Saya telah mencoba langkah-langkah oleh Oleg, dan mereka bekerja untuk situasi yang sama.
Langkah:
Jalankan
update-package Newtonsoft.Json -reinstall
di Package Manager.Hapus
bin
file Anda dengan mengaktifkan melihat file yang tersembunyi dan menghapusbin
folder.Tutup Visual Studio Anda dan buka kembali.
Sekarang jalankan proyek Anda lagi. Saya percaya itu harus baik-baik saja!
sumber
Anda dapat mengatasi masalah ini dengan menambahkan baris di bawah ini dalam file web.config.
sumber
Dalam kasus saya itu hanya masalah:
Masalahnya disebabkan ketika saya memetakan kembali folder TFS.
sumber
Apa yang sebenarnya membantu saya adalah mematikan Resharper build dan menggunakan opsi VisualStudio Re-Build di proyek saya.
sumber
dari Tools >> NuGet Package Manager >> Kelola Paket untuk pembaruan solusi Newtonsoft.Json dari semua solusi untuk Versi terbaru
sumber
jika Anda bekerja dengan beberapa jenis subversi: hapus proyek dan unduh ulang, itu berhasil untuk saya: S
sumber
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.
sumber
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.
sumber
Dalam beberapa kasus jika Anda menghapus
Bin
danObj
folder Anda akan menyelesaikan masalah ini.sumber
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.
sumber
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.
sumber
Jika tidak ada yang berhasil, silakan periksa jawaban ini:
https://stackoverflow.com/a/12011221/150370
( TL; DR : Hapus namespace xml dari
configuration
tag di file konfigurasi Anda. Jika tidak, pengalihan yang mengikat akan diabaikan)sumber
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
sumber
Saya mendapat masalah yang sama dengan dotnet core dan berhasil memperbaikinya dengan membersihkan cache NuGet.
Buka PowerShell dan masukkan perintah berikut.
Lalu saya menutup Visual Studio, membukanya lagi dan memasukkan perintah berikut ke dalam Package Manager Console:
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.
sumber
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
sumber
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
sumber
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)
sumber
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
sumber
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.
sumber
Tidak satu pun dari opsi ini yang bekerja untuk saya, pada akhirnya itu;
Tes> Pengaturan Tes> * .testrunconfig
Saya harus menambahkan baris baru
Pastikan jalur dan versinya benar untuk pengaturan Anda.
sumber
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
sumber
Masalah ini tidak diselesaikan bagi saya dengan menyegarkan Paket NuGet atau dengan melakukan "Bersihkan" pada proyek. Itu dipecahkan dengan membersihkan folder "obj" secara manual.
sumber
Ini solusi saya untuk masalah ini, pastikan nomor versi di appconfig atau packageconfig sama dengan versi referensi di referensi Anda. Lihat di sini
sumber
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.
sumber