Fusion binding Post策略忽略bindingRedirect

本文关键字:bindingRedirect 策略 binding Post Fusion | 更新日期: 2023-09-27 17:59:31

我有一个SignalR和Ext.net的项目。两者都需要Newtonsoft.Json.

SignalR需要Newtonsoft。Json 4.5.0.0和Ext.net需要4.0.8.0。

我的绑定重定向根本不起作用。在我的web.config 中

<dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
  <bindingRedirect oldVersion="4.0.8.0" newVersion="4.5.0.0"/>
</dependentAssembly>

但当它绑定时

===预绑定状态信息===日志:DisplayName=Newtonsoft.Json,版本=4.0.8.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6eed(详细说明)日志:Appbase=file:///C:/Users/*****/文档/View Studio 2012/Projects/QuotaBuilder/branches/1Install/QMSSite/日志:Initial PrivatePath=C:''Users''*****''Documents''Visual Studio 2012''Projects''QuotaBuilder''branchs''1Install''QMSSite''bin调用程序集:Ext.Net,版本=1.6.0.1867,Culture=neutral,PublicKeyToken=2e12ce3d0176cd87。===日志:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件:C:''Users''*****''Documents''Visual Studio 2012''Projects''QuotaBuilder''branchs''1Install''QMSSite''web.config日志:使用主机配置文件:''''pacrl-fsrv02''userdata$''*****''My Documents''IISExpress''config''aspnet.config日志:使用C:''Windows''Microsoft.NET''Framework''v4.0.30319''config''machine.config中的计算机配置文件。日志:发布策略参考:Newtonsoft.Json,版本=4.0.8.0,文化=中性,PublicKeyToken=30ad4fe6b2a6eed日志:正在尝试下载新URLfile:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/TemporaryASP.NET文件/root/862fb004/4708817/Newtonsoft.Json.DLL。日志:正在尝试下载新URLfile:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/TemporaryASP.NET文件/root/862fb004/4708817/Newtonsoft.Json/Newtonsoft.Json.DLL。日志:正在尝试下载新URLfile:///C:/Users/*****/Documents/View Studio 2012/Projects/QuotaBuilder/branches/1Install/QMSSite/bin/Newtonsoft.Json.DLL。警告:比较程序集名称导致不匹配:次要版本错误:未能完成程序集的设置(hr=0x8031040)。探测已终止。

因此,据我所见,Post策略引用应该是重定向版本,而不是原始请求。然而,它却被完全忽视了。我以前在这个项目中也遇到过这个问题,但在过去,我只能得到它要求的版本,因为没有两个独立的依赖项。

Fusion binding Post策略忽略bindingRedirect

将绑定重定向更改为:

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

不要忘记在assemblyBinding元素中包含XML命名空间。

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">