提问人:Fajar 提问时间:8/8/2008 最后编辑:Rashed HasanFajar 更新时间:2/24/2020 访问量:4995
如何引用多版本程序集
How to reference to multiple version assembly
问:
我正在开发一个 Sharepoint 应用程序并使用 .NET AjaxControlToolkit 库,我们正在向 SharePoint 添加一个自定义 aspx 页面。Sharepoint 2007 在 Quirks 模式下运行,因此我对 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
有人可以帮我如何在应用程序中使用多个版本的程序集吗?
答:
5赞
Vivek
7/22/2013
#1
编译器错误 CS0433 的链接非常清楚地表明,核心问题不在于引用程序集的多个版本,而在于命名空间 + 类型名称冲突。
加载/引用类型时 - 编译器无法解析要从哪个 DLL 加载该类型。如果 Sharepoint 要加载您的两个 DLL 版本(正如您所说的那样),则此错误将始终出现。
最简单的解决方法是更改新 DLL 中的命名空间,因为它确实具有自定义调整,并且您可以控制代码 - 也清楚地标记它。
上一个:.NET 远程处理速度和 VPN
下一个:如何使按钮看起来像是按下的?
评论