无论版本如何,我如何引用DLL?

时间:2012-05-18 18:07:02

标签: .net vb.net compiler-construction reference version

好的,我是Telerik控件库的重要用户,专门用于ASP.NET。但是,我想在一些控件中添加一些功能。现在我可以使用Extension方法轻松完成这项工作。所以我写了一个小型图书馆。显然,这个库需要引用他们的DLL(Telerik.Web.UI.dll)。

在我的DLL项目的My Project > References页面中,我引用了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意味着它适用于任何版本。没有?或者我 完全 误解了该设置的作用?

1 个答案:

答案 0 :(得分:4)

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

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