如果公钥标记在旧版本上为空,而在新版本上设置为空,是否可以在引用程序集的不同版本之间执行程序集绑定重定向?

例如,我有两个集会.

System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

如果以下程序集绑定重定向在ASP.NET web.config中工作.

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

推荐答案

不,这是不可能的.程序集需要具有相同的public KeyToken.

bindingRedirect标记只有oldVersion和newVersion属性,因此无论如何都无法告诉它"null"版本.

但背后的真正原因是strong name mechanism%的原因

Asp.net相关问答推荐

无法从部署在应用程序负载均衡器后面的 AWS ECS 上的应用程序发送 HTTP/S 请求

如何格式化搜索字符串以从 Razor 页表中的多个列返回部分搜索字符串?

Web 部署工具 2.1 和 Web 部署 3.5 有什么区别?从 VS 2010 部署需要哪一个?

如何从 JavaScript 调用 C# 函数?

Web 服务器配置为不列出此目录的内容. asp.net vs 2012 错误?

如何在 C# 中生成一个随机的 10 位数字?

使用进程外会话状态的 ASP.NET 应用程序中的 SQL Server 连接问题

在 Sessions 中存储自定义对象

如何通过 Asp.net 中的命令参数传递多个值?

System.Web.HttpContext 无法识别

MvcBuildViews true 与 ASP.NET MVC 2 中的实体框架

asp.net cookie、身份验证和会话超时

通过 jQuery 调用 ASP.NET 服务器端方法

如何设置默认页面 asp.net

使下拉列表项不可 Select

如何在asp.net中获取应用程序路径?

Owin 中是否有来自 Global.asax 的 Application_End?

解析器错误:无法创建类型

ASP.NET IIS Web.config [内部服务器错误]

将 HTML 字符串转换为图像