gpt4 book ai didi

c# - FileLoadException 未被用户代码处理

转载 作者:太空狗 更新时间:2023-10-29 21:01:40 31 4
gpt4 key购买 nike

我正在为我的 MVC-4 应用程序设置 API,当我在 Globals.asax.cs 中取消注释这一行时:

WebApiConfig.Register(GlobalConfiguration.Configuration);

我在开始备份项目时收到此异常:

An exception of type 'System.IO.FileLoadException' occurred in mscorlib.dll but was not handled in user code

Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.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)

我该怎么办?


更新 1(截图)

据我所知,JSON.Net 看起来安装正确。

enter image description here

enter image description here

enter image description here


更新 2

当 API 路由在 Globals.Asax 中被注释掉时,JSON.Net 实际上似乎可以工作。这不会引发任何错误:

public ActionResult Index()
{
var foo = Newtonsoft.Json.JsonSerializer.Create();
return View();
}

Visual Studio 仅在取消注释此行时才会提示:

WebApiConfig.Register(GlobalConfiguration.Configuration);

最佳答案

我今天也遇到了这个问题。似乎有 json.net 的更新(现在是 6.0.3 版),导致 nuget 在构建后下载最新版本。但是,当存在对其他库的依赖时,对旧 json.net 库的引用可能不会更新。

解决方案:手动打开解决方案窗口的管理 nuget 包并卸载旧版本的 json.net。然后获取最新版本并为所有需要的项目安装。这解决了你对我的确切错误......

-- 编辑 --
好的,所以我发现这个解决方案在本地对我有用,但在远程这并没有解决我的问题。似乎有一些来自其他库的旧依赖项硬引用了 4.5.0.0 版本的 json.net。 Stackoverflow.com 上的更多主题提供了以下解决方案。

将此程序集绑定(bind)重定向添加到您的 web.config 文件:

<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-4.5.0.0" newVersion="6.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

关于c# - FileLoadException 未被用户代码处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481678/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com