我在web.config中注意到了这一点:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
究竟是什么?
由于
答案 0 :(得分:3)
这是一个绑定重定向,它是.NET通常希望将引用的程序集绑定到它所构建的确切版本的逃避口号。通常,如果程序是针对特定DLL的X版本构建的,那么.NET将尝试加载版本X,即使有更新的版本可用。这是为了避免由于更新版本中的行为更改(包括错误修复!)而产生的意外。绑定重定向指定另一个策略,表示.NET应该加载“newVersion”中指定的版本。
此特定重定向告诉程序:当程序集尝试加载版本号介于1.0.0.0和1.1.0.0之间的System.Web.Extensions.dll版本时,请不要加载要求的版本:加载版本3.5.0.0而不是。
(在这种情况下,“program”==“网站。”)
它通常用于强制程序使用比它构建的版本更新的DLL版本,而不是针对更新版本重新编译它。
答案 1 :(得分:1)
根据this link,它允许您使用较新版本的程序集。
答案 2 :(得分:1)
我的理解是,它告诉您的应用程序使用版本3.5的System.Web.Extensions,而不是1.0或1.1。换句话说,“需要1.0或1.1,而不是使用3.5。”
答案 3 :(得分:1)
简而言之,它指定如果应用程序依赖于System.Web.Extensions
或System.Web.Extensions.Design
,版本1.0.0.0到1.1.0.0,则系统应加载并使用版本3.5.0.0的程序集。您可以在dependentAssembly
和bindingRedirect
的文档中了解相关信息。
答案 4 :(得分:0)
http://msdn.microsoft.com/en-us/library/0ash1ksb.aspx
它主要用于告诉程序加载3.5.0.0的System.Web.Extenstions.dll,如果它试图加载1.0.0.0或1.1.0.0