好吧,我是 Telerik 控件库的重度用户,特别是针对 ASP.NET。但是,我想向某些控件添加一些功能。现在我可以使用扩展方法轻松地完成此操作。所以我写了一个小型库来完成这个任务。显然,这个库需要引用他们的DLL(
Telerik.Web.UI.dll
)。
在我的 DLL 项目的
My Project > References
页面中,我有对 Telerik.Web.UI.dll
的引用。对于此参考,我将 Specific Version 属性设置为 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 将意味着它适用于任何版本。不?还是我完全误解了该设置的作用?
,这将允许您指示 .NET 框架在runtime 使用另一个版本的程序集(即,如果您的项目是针对版本 1.0 编译的,则它仍然可以与版本 1.1 一起使用,假设API 没有更改)。
Specific Version
属性仅适用于编译时程序集引用。