【发布时间】:2017-02-09 04:24:17
【问题描述】:
我得到了错误:
无法加载文件或程序集“Newtonsoft.Json”或其其中之一 依赖关系。清单定义与程序集不匹配 参考。
将 WebApi 控制器类添加到我的 ASP.NET MVC 项目后。我的项目中也有 SignalR。两者都在使用 Newtonsoft.Json,但似乎它们引用的版本不同。
SignalR 使用并与 6.0.8 版本一起使用,而错误告诉我 MapHttpRoute :
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
RouteTable.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}");
}
尝试加载 4.5 版本。
我读了这篇文章SignalR & WebApi - colliding Newtonsoft.Json references
但我不知道如何告诉 webapi 指向 6.0.8 版本。
【问题讨论】:
-
链接的问题是非常老并且不适用。添加相关的 NuGet 包,而不是添加对程序集的引用。 NuGet 将在您安装包时解决所有冲突
-
当您说添加相关的 NuGet 包时,您的意思是通过 NuGet 安装 Newtonsoft.Json ?因为我已经尝试过了,并用 9.0.0 版更新了它,SignalR 和 WebApi 都崩溃了,因为他们找不到程序集
-
Json.NET 和 SignalR。 SignalR 本身是另一个 NuGet 包。不过,请先尝试一个干净的项目,否则您必须删除已在 app.config 中添加的所有重定向
-
我已经通过 NuGet 安装了 SignalR,现在我已经更新了 Newtonsoft.json。由于同样的原因,它仍然在崩溃。我从 web.config 中删除了所有重定向,它没有改变任何东西。我会从一个干净的项目中尝试
标签: c# asp.net-web-api json.net signalr