如何引用多版本程序集

Faj*_*jar 19 .net c# sharepoint assemblies

我正在开发一个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"
%>
Run Code Online (Sandbox Code Playgroud)

它给了我编译器错误CS0433

有人可以帮助我如何在应用程序中使用多个版本的程序集?

Viv*_*vek 5

好了,编译器错误CS0433的链接清楚地表明,核心问题并不在于所引用的程序集的多个版本-而是名称空间+类型名称冲突。

加载/引用类型时,编译器无法解析从哪个DLL加载该类型。如果Sharepoint将同时加载两个DLL版本(如您所说的那样),则始终会出现此错误。

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