尝试启动我的asp.net应用程序时收到以下错误消息:
错误1程序集' MyProject,版本= 1.0.0.0, Culture = neutral,PublicKeyToken = null'使用' System.Web.Http, Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' 它的版本高于引用的程序集&System; Web.Http, 版本= 4.0.0.0,文化=中立, 公钥= 31bf3856ad364e35'
这条消息是什么意思?使用过的程序集和引用的程序集之间有什么区别?
在查看System.Web.Http程序集的属性时(通过解决方案资源管理器 - >我的项目 - >参考 - > System.Web.Http),我可以看到5.2.3.0。
关于此类错误的SO有很多问题/答案,但我找不到真正解释的问题。
答案 0 :(得分:0)
技巧是System.Web.Http
作为Web应用程序初始化的一部分加载,早在项目引用开始之前。因此,当您的项目加载时,它会尝试将同一程序集的较新版本加载到同一个应用程序域中,从而导致错误。
您可以在web.config中使用程序集绑定重定向:
<configuration>
<runtime>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"
culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</runtime>
</configuration.