17

好的,我是 Telerik 控件库的重度用户,特别是 ASP.NET。但是,我想将一些功能添加到某些控件中。现在我可以使用扩展方法很容易地做到这一点。所以我写了一个小型库,正是这样做的。显然,这个库需要引用它们的 DLL ( Telerik.Web.UI.dll)。

My Project > References我的 DLL 项目的页面中,我引用了Telerik.Web.UI.dll. 对于这个参考,我将特定版本属性设置为 False,因为我不希望我的库关心正在使用的 Telerik DLL 的版本。这是我的问题…….NET 编译器似乎不支持这个设置。

例如,我有一个引用 Telerik DLL 和我的网站的网站。我将 Telerik 库更新到了最新版本。现在,当我尝试运行我的网站时,我得到:

Could not load file or assembly 'Telerik.Web.UI, Version=2012.1.215.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我通过转到我的 DLL 项目,针对最新的 Telerik DLL 重新编译它,然后在网站上更新我的 DLL 来解决这个问题。这正是我每次更新 Telerik 的库时都不想做的事情。认为特定版本设置为 false 意味着它将适用于任何版本。不?还是我完全误解了该设置的作用?

4

1 回答 1

4

您应该考虑使用bindingRedirect哪个允许您指示 .NET 框架在运行时使用另一个版本的程序集(即,如果您的项目是针对 1.0 版编译的,它仍然可以与 1.1 版一起使用,假设没有 API 更改)。

Specific Version属性仅适用于编译时程序集引用。

于 2012-05-18T18:13:04.560 回答