我正在开发一个Sharepoint应用程序并使用.NET AjaxControlToolkit库,我们正在向Sharepoint添加一个自定义aspx页面。 Sharepoint 2007以怪癖模式运行,因此我对AJAX库进行了一些修改,使其表现得像通常那样。问题是,另一个团队已经使用了AJAX库,它与我的版本不同。这会导致冲突,因为bin文件夹中只能有一个具有相同名称的dll。
据我所知,.NET应该能够轻松应对这种情况。我尝试使用强名称和GAC来解决它,但它仍然引用bin文件夹中的dll。如果bin文件夹中没有AjaxControlToolkit.dll,则应用程序将无法加载程序集。
如果我在我这样使用完整的装配信息
<%@
Register
tagprefix="AjaxControlToolkit"
namespace="AjaxControlToolkit"
assembly="AjaxControlToolkit, Version=1.0.299.18064,
PublicKeyToken=12345678abcdefgh,
Culture=neutral"
%>
它给了我编译器错误CS0433
有人可以帮助我了解如何在应用程序中使用多个版本的程序集吗?
答案 0 :(得分:3)
Compiler Error CS0433的链接很清楚,核心问题不在于引用的程序集的多个版本 - 而是名称空间+类型名冲突。
加载/引用类型时 - 编译器无法解析从中加载该类型的DLL。如果Sharepoint将加载你的两个DLL版本(正如你所说的那样) - 这个错误将永远存在。
最简单的修复方法是更改新DLL中的命名空间,因为它确实有自定义调整,并且您可以控制代码 - 也可以清楚地标记它。