Không thể tải tệp hoặc lắp ráp 'Newtonsoft.Json' hoặc một trong các phụ thuộc của nó. Định nghĩa kê khai không khớp với tham chiếu lắp ráp


216

Những điều tôi đã thử sau khi tìm kiếm:

  1. trong Web.Config đặt một ràng buộc trên phiên bản cũ:

    <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. Chỉnh sửa tệp .csproj của tôi để đảm bảo chỉ có một tham chiếu 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. Tìm kiếm trên máy tính của tôi cho mọi Newtonsoft.Json.dll và xóa mọi phiên bản không phải 6.0.1 và xóa nội dung trong thư mục tạm thời của tôi

  4. Sửa chữa / Cài đặt lại gói trong bảng điều khiển nuget manager

Nó thành công trong việc xây dựng, nhưng gặp lỗi khi đi đến trang web.

BIÊN TẬP

ok, vì vậy sau đó tôi đã cố gắng cài đặt lại như mọi gói nuget và dường như nó đã thêm lại phiên bản 4.5 của newtonsoft.json.dll, nhưng tôi cũng gặp lỗi tương tự. Mục tiêu của dự án của tôi là .NET 4.5.1 và đây là dấu vết ngăn xếp mà tôi nhận được bây giờ:

lỗi server trong ứng dụng '/'

Không thể tải tập tin hoặc lắp ráp Newtonsoft.Jsonhoặc một trong các phụ thuộc của nó. Định nghĩa tệp kê khai của cụm lắp ráp không khớp với tham chiếu lắp ráp. (Ngoại lệ từ HRESULT 0x80131040:)

Mô tả: Một ngoại lệ chưa được xử lý đã xảy ra trong quá trình thực hiện yêu cầu web hiện tại. Vui lòng xem lại dấu vết ngăn xếp để biết thêm thông tin về lỗi và nguồn gốc của mã.

Chi tiết ngoại lệ System.IO.FileLoadException:: Không thể tải tệp hoặc lắp ráp Newtonsoft.Jsonhoặc một trong các phụ thuộc của nó. Định nghĩa tệp kê khai của cụm lắp ráp không khớp với tham chiếu lắp ráp. (Ngoại lệ từ HRESULT 0x80131040:)

Lỗi nguồn:

Một ngoại lệ chưa được xử lý đã được tạo trong quá trình thực hiện yêu cầu web hiện tại. Thông tin liên quan đến nguồn gốc và vị trí của ngoại lệ có thể được xác định bằng cách sử dụng dấu vết ngăn xếp ngoại lệ bên dưới.

Dấu vết tải hội: Các thông tin sau có thể hữu ích để xác định lý do tại sao lắp ráp Newtonsoft.Jsonkhông thể được tải.

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

Dấu vết ngăn xếp:

[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

2
Ok, tôi nghĩ rằng tôi đã làm cho nó để làm việc bây giờ. Tôi đã xóa mọi Newtonsoft.Json.dll trên máy của mình không phải là phiên bản mới nhất mà tôi có thể tìm thấy, đảm bảo rằng tôi đã có phiên bản mới nhất trong NuGet, và xây dựng nó và đảm bảo đó là phiên bản mới nhất trong thư mục bin và Tôi đã để lại những thay đổi trong web.config và .csproj. Bây giờ tôi đang gặp phải một lỗi khác, vì vậy nó phải hoạt động ...
noobieDev

1
Thêm câu trả lời cho câu hỏi của bạn để mọi người có thể thấy nó đã được giải quyết? Và đánh dấu nó là giải pháp
Per Hornshøj-Schierbeck

2
Tôi đang có một số phiên bản của vấn đề này ngay cả hôm nay (3/1/2016) với phiên bản 8.0.2. Nó đang cố tải phiên bản 6.0.0. Không có tập tin trong giải pháp của tôi tham khảo 6.0.0. Không có phiên bản 6.0.0. Bất cứ nơi nào trong khu vực giải pháp của tôi. Tôi có nhiều bản sao newtonsoft.json.dll trên máy tính của tôi, gồm nhiều phiên bản khác nhau, chúng được sử dụng bởi phần mềm bên thứ 3 đã cài đặt mà tôi không muốn làm phiền. Ngoài việc xóa tất cả các bản sao đó, tôi đã thử mọi giải pháp được đề cập trong toàn bộ chủ đề này và không có gì hoạt động.
Shavais

1
Tôi cũng đã gặp thông báo lỗi này của newtonsoft-json khi tôi thêm tham chiếu của một dự án vào một dự án khác nhưng .Net Framework trong các dự án khác nhau sau khi thực hiện cùng một .Net Framework trên cả hai vấn đề. Nhưng tôi không thể hiểu thay vì thông báo lỗi Framework tại sao nó hiển thị lỗi liên quan đến newtonsoft-json.
Sameer

1
Cài đặt cùng một phiên bản Newtonsoft.Json trong tất cả các dự án của bạn, mặc dù họ không sử dụng nó.
rubStackOverflow

Câu trả lời:


274

Để giải quyết điều này, tôi đảm bảo tất cả các dự án của tôi đã sử dụng cùng một phiên bản bằng cách chạy lệnh sau và kiểm tra kết quả:

update-package Newtonsoft.Json -reinstall

Và cuối cùng, tôi đã xóa các mục sau khỏi web.config:

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

Nếu bạn muốn đảm bảo tất cả các gói Newtonsoft.Json của bạn là cùng một phiên bản, bạn có thể chỉ định phiên bản như vậy:

update-package Newtonsoft.Json -version 6.0.0 -reinstall

17
Chỉ cần chạy lệnh cài đặt lại làm việc cho tôi. Tôi không cần phải sửa đổi web.config.
Keith

4
Tôi chỉ cần thêm thẻ <phụ thuộc> để thoát khỏi lỗi này.
Nicklas Møller Jepsen

3
Tôi đã phải cung cấp -version, nhưng bỏ qua cờ -reinstall để làm cho nó hoạt động trong trường hợp của tôi.
anre

1
Tôi đang sử dụng phiên bản 9.0.1 gần đây nhưng nó đã hiển thị lỗi tương tự. Sau đó tôi đã kiểm tra phiên bản trong tệp csproj và nó là 9.0.0.0, đã thêm nó vào web.config của tôi và vấn đề đã được giải quyết. 1. Đảm bảo rằng phiên bản trong csproj giống như trong web.config 2. Cẩn thận với các số phiên bản, nó có thể nói x.0.1 khi phiên bản thực tế là x.0.0.0, x có thể là 6 hoặc 9 hoặc bất cứ thứ gì .
Eugene

7
Lưu ý rằng để chạy các lệnh trong VS2017, bạn có thể đi vào Tools -> NuGet Package Manager -> Package Manager Console
Rose

83

Tôi đang sử dụng Newtonsoft.Json v6.0.3, nhưng đây là những gì tôi phải làm trong tệp Web.config:

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

Lưu ý rằng ngay cả khi tôi đang sử dụng 6.0.3, tôi đã phải đưa vào newVersion="6.0.0.0"

Trong tập tin gói.config tôi có:

<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />

1
Cũng như một ghi chú, tôi đã thử gỡ cài đặt / xóa / xóa mọi thứ mà tôi có thể tìm thấy phải làm với Newtonsoft.Json, sau đó sử dụng Nuget để cài đặt lại, nhưng vẫn nhận được lỗi ở trên. Mãi cho đến khi tôi thực hiện những thay đổi tôi đã đề cập thì tôi mới có thể khiến nó hoạt động bình thường.
CraigV

Tôi đã gặp vấn đề này và đã sử dụng Trình xem nhật ký kết nối hội để giúp chẩn đoán nó. Chất kết dính lắp ráp báo cáo v6.0.3 Newtonsoft.Json.dll là v6.0.0.0 nên việc chuyển hướng sẽ thất bại khi tôi định cấu hình là 6.0.3.
Jason Slocomb

Dòng "Ghi chú" giúp tôi. Ban đầu tôi đã có 9.0.1.19813 với tư cách là newVersion trong bindRedirect vì đó là những gì DLL nói. Đây là những gì tôi có bây giờ: <Reference Bao gồm = "Newtonsoft.Json, Phiên bản = 9.0.0.0, Culture = trung tính, PublicKeyToken = 30ad4fe6b2a6aeed, bộ xử lýArch architecture = MSIL"> <Cụ thể> Sai </ Cụ thể> </ Tham khảo> <phụ thuộc> <tên assemblyIdentity = "Newtonsoft.Json" văn hóa = "trung lập" PublicKeyToken = "30ad4fe6b2a6aeed" /> <bindingRedirect oldversion = "0.0.0.0-9.0.0.0" newVersion = "9.0.0.0" /> </ dependentAssembly>
Đánh dấu Seefeldt

62

Tôi đã thử những điều sau đây sau khi đã đảm bảo rằng máy tính của tôi có cùng một phiên bản ở tất cả các địa điểm và các dự án của tôi đều hướng đến cùng một đường dẫn tham chiếu. Tôi cũng đã chắc chắn rằng ràng buộc của phiên bản cũ là của họ và ràng buộc với phiên bản hiện tại của dll mà tôi có.

Tôi làm việc trong một môi trường có khung nghiêm ngặt và nhóm khung thường làm đảo lộn phiên bản với các dll khác nhau.

Cách tôi khắc phục sự cố này là chạy bảng điều khiển quản lý gói trong studio hình ảnh (2013). Từ đó tôi chạy lệnh sau:

update-package Newtonsoft.Json -reinstall

theo dõi bởi

update-package Newtonsoft.Json

Điều này đã đi qua và cập nhật tất cả các tệp cấu hình của tôi và các tệp dự án có liên quan. Buộc tất cả chúng vào cùng một phiên bản của dll. Đó là phiên bản 4.5 ban đầu trước khi cập nhật lại để có bản mới nhất.


Đó là bản cập nhật đã giải quyết vấn đề cho tôi. Dự án của tôi đã được cập nhật lên Newtonsoft phiên bản 7.0.
id.ot

Đã làm cho tôi. Sau khi thực hiện việc này, Điều quan trọng cần lưu ý để đảm bảo tệp pack.config và web.config của bạn có phiên bản phù hợp.
TheValyreangroup

Làm việc cho tôi khi được thực hiện từ Bảng điều khiển quản lý gói NuGet cảm ơn!
Kbdavis07

25

Tôi đã có cùng một thông báo lỗi và, như bạn đã đề cập, đó là do các phiên bản khác nhau của Newtonsoft.Json.dll được tham chiếu.

Một số dự án trong giải pháp MVC của tôi đã sử dụng gói NuGet cho phiên bản 4 của dll đó.

Sau đó, tôi đã thêm gói NuGet (cho Salesforce trong trường hợp của tôi) đã mang Newtonsoft.Json phiên bản 6 với nó như là một phụ thuộc vào một trong các dự án. Đó là những gì gây ra vấn đề cho tôi.

Để dọn dẹp mọi thứ, tôi đã sử dụng phần Cập nhật trong Trình quản lý gói NuGet cho giải pháp (tắt menu Công cụ hoặc nhấp chuột phải vào giải pháp) để cập nhật gói Json.Net trong suốt giải pháp để nó là phiên bản giống nhau cho tất cả các dự án.

Sau đó, tôi chỉ kiểm tra các tệp Cấu hình ứng dụng để đảm bảo mọi dòng chuyển hướng ràng buộc sẽ đến phiên bản đã chọn của tôi như dưới đây.

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />

Điều gì xảy ra nếu DLL có phụ thuộc cho các phiên bản khác nhau của Newtonsoft.Json cho cùng một ứng dụng MVC? Đây là nơi tôi đang bị mắc kẹt.
Jeremy Ray Brown

Sử dụng tùy chọn Hợp nhất trong trình quản lý gói NuGet để đảm bảo các phiên bản không bị tách rời.
niico

17

Ok, tôi nghĩ rằng tôi đã làm cho nó để làm việc bây giờ. Tôi đã xóa mọi Newtonsoft.Json.dll trên máy của mình không phải là phiên bản mới nhất mà tôi có thể tìm thấy, đảm bảo rằng tôi đã có phiên bản mới nhất trong NuGet, và xây dựng nó và đảm bảo đó là phiên bản mới nhất trong thư mục bin và Tôi đã để lại những thay đổi trong web.config và .csproj. Bây giờ tôi đang gặp một lỗi khác, vì vậy nó phải hoạt động ..


2
Làm thế nào bạn đi về việc tìm kiếm tất cả các vị trí trên máy của bạn?
obaylis

Tôi cũng gặp lỗi khi nhận dự án bởi máy chủ nền tảng nhóm vào máy tính của mình. Tôi thêm tài liệu tham khảo newtonsoft vào giải pháp của mình. Nó không hoạt động. Tôi đã cài đặt json.net (newtonsoft.json) thông qua trình quản lý gói nuget. làm việc tốt.
Mohammad Sadiqur Rahman

nó nằm trong tên tệp thư mục bin - Newtonsoft.Json.dll Xóa tệp này và cài đặt lại gói hoặc chỉ cài đặt phiên bản thấp hơn và cài đặt lại phiên bản chính xác bằng NuGet-Solution
maddy

7

Bằng cách nhận xét phần này trên web.config đã giải quyết vấn đề của tôi:

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

Nhưng tất nhiên bạn cần đảm bảo rằng bạn đã cập nhật hoặc bạn có phiên bản phù hợp bằng cách thực hiện điều này trong bảng điều khiển quản lý gói của bạn:

update-package Newtonsoft.Json -reinstall

4

Tôi đã thử các bước của Oleg và họ đã làm việc cho tình huống tương tự của tôi.

Các bước:

  1. Chạy update-package Newtonsoft.Json -reinstalltrong Trình quản lý gói.

  2. Xóa của bạn binbằng cách cho phép xem các tập tin ẩn và xóa binthư mục.

  3. Đóng Visual Studio của bạn và mở lại.

  4. Bây giờ chạy lại dự án của bạn. Tôi tin rằng nó sẽ ổn thôi!


4

Bạn có thể giải quyết vấn đề bằng cách thêm các dòng dưới đây vào tệp 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>

3

Trong trường hợp của tôi, đó chỉ là vấn đề:

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

Vấn đề được gây ra khi tôi ánh xạ lại một thư mục TFS.


3

Điều thực sự giúp tôi là tắt bản dựng Resharper và sử dụng tùy chọn VisualStudio Re-Build trong dự án của tôi.


Cậu đã làm thế nào vậy?
Naomi

1
Trong các tùy chọn của Resharper: Công cụ -> ReSharper Build -> Build Engine - chọn "Visual Studio"
Shaulian

Tôi đã cài đặt một phiên bản dùng thử cách đây một thời gian (khoảng một tháng, tôi nghĩ vậy) và sau đó tôi cũng đã tắt tiện ích mở rộng. Tôi không thấy nó trong Công cụ, vì vậy hy vọng tôi ổn.
Naomi

3

từ Công cụ >> Trình quản lý gói NuGet >> Quản lý gói để cập nhật giải pháp Newtonsoft.Json của tất cả các giải pháp cho Phiên bản mới nhất


2

nếu bạn đang làm việc với một số loại lật đổ: xóa dự án và tải xuống lại, nó hoạt động với tôi: S


Đi đường dài nhưng tôi phải làm điều này vì không có giải pháp nào khác hiệu quả với tôi
Mike Resoli

2

Tôi gặp vấn đề tương tự trên Dự án thử nghiệm có tham chiếu đến dự án MVC 5. Điều này xảy ra sau khi tôi hợp nhất với một dự án MVC 5. Tôi đã sửa nó bằng cách cài đặt các bản cập nhật Visual studio 2012 như được giải thích ở đây trong phản hồi của Andre.

  • Trong phòng thu hình của bạn đi đến
    1. Công cụ> Tiện ích mở rộng và cập nhật
    2. Chọn "Cập nhật" trong danh sách accordion bên trái.
    3. Chọn "Cập nhật sản phẩm".
    4. Cập nhật lên phiên bản mới nhất

Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi
hủy bỏ

Vấn đề của tôi đã được khắc phục với giải pháp này nhờ! Tôi đã cài đặt phiên bản 8.0.1 và nó không hoạt động cho đến khi tôi cập nhật lên bản cập nhật VS2013 5
Devin Prejean

2

Tôi không biết tại sao, nhưng trong trường hợp của tôi, ngay cả khi tôi xóa thư mục bin khỏi dự án, khi tôi xây dựng dự án, nó sao chép phiên bản cũ của newtonsoft.json, tôi đã sao chép dll phiên bản mới từ thư mục gói và hiện tại nó đã giải quyết.


Tôi đã có một vấn đề tương tự. Trong giải pháp của tôi, tôi có một dự án thử nghiệm. Dự án thử nghiệm đã nhận được phiên bản 9 trong thùng, nhưng dự án tôi đang thử nghiệm có phiên bản 12. Tôi đã sao chép phiên bản 12 từ dự án trong thư mục bin của thử nghiệm vào thư mục bin của thử nghiệm.
Josh Jay

2

Trong một số trường hợp nếu bạn xóa BinObjcác thư mục sẽ giải quyết vấn đề này.


2

Được rồi vì vậy tôi đoán điều cần làm là thêm câu trả lời của tôi vào danh sách dài này thay vì tạo một câu hỏi trùng lặp ...

Nếu bạn nhận được điều này vào năm 2019, sử dụng .NET Core 3.0 (Xem trước tại thời điểm này), giải pháp là đảm bảo tất cả các dự án đang nhắm mục tiêu vào cùng một phiên bản .NET Core (trong trường hợp của tôi là 3.0). Tôi nghĩ rằng tôi đã có một dự án trong giải pháp nhắm mục tiêu 2.1 và phần còn lại là 2.2 nên có lẽ tôi đã bị mắc kẹt với 2.2 ...

Tôi thậm chí không cài đặt Newtonsoft.Json trong bất kỳ dự án nào và việc thêm nó vào chúng không khắc phục được vấn đề.

Nếu bạn có thư viện lớp .NET Standard hoặc w / e trong giải pháp của mình, chúng không cần phải ở cùng một phiên bản, mặc dù chúng có thể là phiên bản mới nhất bạn có thể đi. Ví dụ, các thư viện lớp .NET Standard của tôi nằm trên 2.2 vì chưa có .NET Standard 3.0.


1

Không có câu trả lời nào, kể cả câu trả lời không có tác dụng với tôi.

Giải pháp đơn giản hơn nhiều. Lần đầu tiên tôi loại bỏ các tham chiếu từ lớp BUS của tôi. Sau đó xóa dll khỏi dự án (để chắc chắn rằng nó đã biến mất), sau đó cài đặt lại JSON.NET từ các nhịp điệu nuget. Và, phần khó khăn là, "tắt và bật lại".

Tôi chỉ khởi động lại studio hình ảnh, và nó hoạt động!

Vì vậy, nếu bạn thử mọi cách có thể mà vẫn không thể giải quyết được vấn đề, chỉ cần thử tắt và bật lại studio hình ảnh, nó có thể giúp ích.


2
Tôi nghĩ Simple đã mỉa mai.
Worthy7

1

Nếu không có cái nào trong số này hoạt động, vui lòng kiểm tra câu trả lời này:

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

( TL; DR : Xóa không gian tên xml khỏi configurationthẻ trong tệp cấu hình của bạn. Nếu không, các chuyển hướng ràng buộc sẽ bị bỏ qua)


1

Tôi đã giải quyết nó bằng cách xóa phiên bản thấp hơn của Newtonsoft.json.dll trong thư mục bin và thêm Newtonsoft.json.dll V6.0.0.0 và xóa các thành phần web.config sau

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

1

Tôi gặp vấn đề tương tự với lõi dotnet và đã cố gắng khắc phục bằng cách xóa bộ đệm NuGet.

Mở powershell và nhập lệnh sau.

dotnet nuget locals all --clear

Sau đó, tôi đóng Visual Studio, mở lại và nhập lệnh sau vào Bảng điều khiển quản lý gói:

Update-Package

Bây giờ NuGet sẽ khôi phục tất cả các gói và bật lại bộ đệm nuget.

Sau đó, tôi đã có thể xây dựng và khởi động webapi lõi dotnet của mình trong một thùng chứa Linux.


1

giải pháp giải quyết vấn đề của tôi cho việc này là

tham chiếu goto-> nhấp chuột phải vào Newtonsoft.json - thuộc tính goto và kiểm tra phiên bản

phiên bản tương tự nên có trong

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

0

Bước dễ dàng. (1) Chạy "gói cập nhật Newtonsoft.Json -reinstall" trong trình quản lý gói.

(2) Xóa thùng của bạn bằng cách cho phép xem các tập tin ẩn và xóa thư mục bin.

(3) Đóng studio hình ảnh của bạn và mở lại.

(4) Bây giờ chạy lại dự án của bạn. Tôi tin rằng nó sẽ ổn


0

Tôi gặp vấn đề này bởi vì tôi đã có: dự án A (máy tính để bàn .exe) đề cập đến dự án B (một di động. A & B có các phiên bản JSON.Net khác nhau và do đó đã xảy ra xung đột trình tải. Khi tôi đã tạo tất cả các phiên bản JSON.net giống nhau, nó đã hoạt động. (Điều này có hiệu lực với những gì một số giải pháp ở trên đang thực hiện - Tôi chỉ đang gọi lý do tại sao nó hoạt động)


0

Tôi đã vật lộn với dự án gần đây và cũ hơn.

Tôi quản lý để theo dõi vấn đề sau khi kiểm tra phiên bản nào của dll thực sự có trong thư mục bin.

Tôi đã có một kịch bản hậu xây dựng sao chép các tập hợp phụ thuộc từ thư mục thư viện dll vào thư mục bin. Một thiết lập phổ biến từ những ngày trước khi nuget.

Vì vậy, mỗi lần tôi xây dựng kịch bản hậu xây dựng đã thay thế phiên bản chính xác của Json.net bằng phiên bản cũ hơn


0

Tôi có cùng một vấn đề và thư viện mặc định của Visual Studio 13 đối với tôi là 4,5, vì vậy tôi có 2 giải pháp là đưa ra tham chiếu đến vấn đề này trong tệp webconfig. Đó là một phương sách cuối cùng và nó làm việc.

Thông báo lỗi cho biết có một vấn đề tại vị trí này / Dự án / foo / bar / bin / Newtonsoft.Json.DLL. DLL ở đâu! Một kiểm tra thuộc tính cơ bản cho tôi biết đó là 4.5.0.0 hoặc giống nhau vì vậy tôi đã thay đổi webconfig để tìm lên 4.5 và sử dụng 4.5.


0

Không có lựa chọn nào trong số này làm việc cho tôi, cuối cùng nó đã được;

Kiểm tra> Cài đặt kiểm tra> * .testrunconfig

Tôi đã phải thêm một dòng mới

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

Hãy chắc chắn rằng đường dẫn và phiên bản là chính xác cho thiết lập của bạn.


0

Tôi gặp vấn đề tương tự. Tôi đã tạo một dự án api web và sau đó nâng cấp nó từ .net 4.5.1 lên .net 4.6.1. Đóng IDE, dừng IIS và xóa nội dung của C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Tệp ASP.NET tạm thời \ dir đã khắc phục sự cố.

HTH


0

Vấn đề này không được giải quyết cho tôi bằng cách làm mới Gói NuGet hoặc bằng cách thực hiện "Sạch" trong dự án. Nó đã được giải quyết bằng cách xóa thư mục "obj" bằng tay.


0

Đây là giải pháp của tôi cho vấn đề này, đảm bảo số phiên bản trong appconfig hoặc packageconfig giống với phiên bản tham chiếu trong tài liệu tham khảo của bạn. Xem tại đây


0

Trong trường hợp của tôi, tại thông báo lỗi là " phiên bản 6.0.0 ", nhưng phiên bản này không có sẵn để cài đặt, vì vậy tôi đã cài đặt " phiên bản 6.0.1 " tại dự án của mình và giải quyết vấn đề của tôi.

install-package Newtonsoft.Json -Version 6.0.1 -Project MyProjectX
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.