如何允许两个具有相同namespace.class的DLL存在于同一个应用程序中?

时间:2009-07-23 14:56:40

标签: c# asp.net dll compiler-construction yellow-screen-of-death

具体来说,我们正在尝试将我们的telerik控件升级到最新版本。不幸的是,旧的DLL太老了,以至于很多控制属性发生了巨大的变化,所以我们决定只升级给我们带来问题的telerik控件(RadEditor控件)。

所以bin看起来像这样:

RadChart.Net2.dll
RadEditor.Net2.dll (we want to get rid on only this one)
RadGrid.Net2.dll
RadInput.Net2.dll
RadPanelbar.Net2.d
RadSpell.NET2.dll
RadTabStrip.Net2.d
RadToolbar.Net2.dl
RadTreeView.Net2.d
RadUpload.Net2.dll
RadWindow.Net2.dll
Telerik.Web.UI.dll (this is the new DLL)

问题是从旧DLL到新DLL(Telerik.Web.UI)的所有命名空间和类都是相同的。

以下是我得到的具体错误:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0433: The type 'Telerik.Charting.ChartSeries' exists in both 'c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\c6516654\63e1c826\assembly\dl3\9aa96a66\00ba04b3_fd85c701\RadChart.Net2.DLL' and 'c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\c6516654\63e1c826\assembly\dl3\8fdb0e6c\001aa55c_c4f9c901\Telerik.Web.UI.DLL'

我已经考虑过GAC新的DLL,但我不确定这会对情况有所帮助。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:10)

您可以使用extern别名(tutorialreference)来区分它们。不可否认,这非常令人讨厌 - 显然可以避免在哪里,但至少C#提供了一种解决方法:)