【问题标题】:Could not load file or assembly Telerik.Web.UI in ASP.NET无法在 ASP.NET 中加载文件或程序集 Telerik.Web.UI
【发布时间】:2015-12-06 10:46:27
【问题描述】:
当我将其更新到版本 2015.2.623.45 时,我有 Telerik 版本 2012.2.607.35
我收到了这个错误:
无法加载文件或程序集'Telerik.Web.UI,
版本=2012.2.607.35,文化=中性,公钥
Token=121fae78165ba3d4' 或其依赖项之一。位于
程序集的清单定义与程序集引用不匹配。
(HRESULT 异常:0x80131040)
我在项目引用中将所有引用telerik替换为2015.2.623.45版本,但错误仍然存在。
【问题讨论】:
标签:
c#
asp.net
.net
telerik
【解决方案1】:
你应该在 web.config 文件中定义程序集
<dependentAssembly>
<assemblyIdentity name="YourDllFile" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-YourDllFileVersion" newVersion="YourDllFileVersion" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" />
<bindingRedirect oldVersion="1.0.0.0-2015.2.600.45" newVersion="2015.2.623.45" />
</dependentAssembly>
【解决方案2】:
虽然程序集绑定重定向是解决此问题的一种方法,但正如答案所建议的那样,我建议您找到完全限定的程序集引用并将其设为非完全限定。它很可能是 web.config 或用户控件中的 Register 指令。这样做会使以后的更新更容易,否则下次升级时会出现同样的错误,除非你也更新了 bindingRedirect。
【解决方案3】:
我遇到了类似的问题。我检查了我网站上 bin 文件夹中的 .dll 版本以及引发错误的版本。由于引发错误的代码不是我自己的,我意识到 .dll 的版本是第 3 方代码的依赖项。事实证明,我的 bin 中的 .dll 已被旧版本覆盖。
解决方案是将正确版本的 .dll 放在 bin 文件夹中(因为它最初是随应用程序安装的)似乎更新无法安装较新版本。