如何参考多个版本程序集

我正在开发一个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
你是否在同一个控件中使用不同的程序集版本?或者它是同一个项目,但不同的控制?
额外 作者 Machinegon,

1 答案

那么编译器错误CS0433 的链接很明显,核心问题不是被引用的程序集的多个版本 - 而是命名空间+类型名冲突。

当你加载/引用一个类型时 - 编译器无法解析哪个DLL加载该类型。如果Sharepoint要加载你的DLL版本(正如你所说的那样),这个错误总是会出现的。

最简单的解决方法是更改​​新DLL中的名称空间,因为它具有自定义的调整,并且您可以控制代码 - 也可以清楚地标记它。

0
额外