好的,我是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意味着它适用于任何版本。没有?或者我 完全 误解了该设置的作用?
答案 0 :(得分:4)
您应该考虑使用bindingRedirect
,这将允许您指示.NET框架在运行时使用另一版本的程序集(即,如果您的项目是针对1.0版编译的,那么它将会仍然可以使用1.1版,假设没有API更改)。
Specific Version
属性仅适用于编译时程序集引用。