Newtonsoft冲突.带有signalR + WEBAPI的Json DLL版本
本文关键字:Json DLL 版本 WEBAPI 冲突 带有 signalR Newtonsoft | 更新日期: 2023-09-27 18:09:54
我得到了错误:
无法加载文件或程序集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版本。
我读了这篇文章WebApi碰撞Newtonsoft。Json引用
但是我不知道如何告诉webapi指向6.0.8版本
您可以使用AssemblyBinding重定向到您安装的Newtonsoft。Json组装。只需在Web.config
中添加</configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.8" newVersion="6.0.8" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
这会将所有错误版本的调用重定向到您安装的6.0.8版本