冲突 Newtonsoft.Json DLL 版本与 signalR + WEBAPI
Conflict Newtonsoft.Json DLL version with signalR + WEBAPI
我收到错误:
Could not load file or assembly 'Newtonsoft.Json' or one of its
dependencies. Manifest definition does not match the assembly
reference.
将 WebApi 控制器 class 添加到我的 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 版本。
我读了这个postSignalR & WebApi - colliding Newtonsoft.Json references
但是不知道怎么让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
我收到错误:
Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. Manifest definition does not match the assembly reference.
将 WebApi 控制器 class 添加到我的 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 版本。
我读了这个postSignalR & WebApi - colliding Newtonsoft.Json references
但是不知道怎么让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