Как вы позволяете двум DLL с одинаковым namespace.class существовать в одном приложении?

В частности, мы пытаемся обновить наши элементы управления телериком до последней версии. К сожалению, старые библиотеки DLL настолько устарели, что многие свойства элементов управления сильно изменились, поэтому мы решили обновить только элемент управления Telerik, который доставляет нам проблемы (элемент управления RadEditor).

Итак, корзина выглядит примерно так:

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 до новых (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, но не уверен, что это поможет в ситуации. Любая помощь будет принята с благодарностью.


person sestocker    schedule 23.07.2009    source источник


Ответы (1)


Вы можете использовать внешние псевдонимы (учебник и ссылка), чтобы различать их. По общему признанию, это довольно раздражает - очевидно, избегайте там, где вы можете, но, по крайней мере, С# предоставляет способ обойти это :)

person Jon Skeet    schedule 23.07.2009
comment
Похоже, это отличное решение, но мы используем веб-сайт (поэтому мы не можем использовать псевдоним DLL - все просто в мусорном ведре). - person sestocker; 23.07.2009
comment
Хм... не могли бы вы изменить тип проекта, чтобы у вас был нормальный список литературы? Или может быть какой-то способ настроить ссылку в web.config... - person Jon Skeet; 23.07.2009
comment
Вы можете записать dll в папку bin, которая, в свою очередь, использует псевдонимы для других dll? - person Dexters; 23.07.2013
comment
@Dexters: я не уверен, точно что вы имеете в виду - я подозреваю, что вам лучше задать новый вопрос с большим количеством деталей (и показать, что вы уже пробовали). - person Jon Skeet; 24.07.2013
comment
@JonSkeet да, извини за это - person Dexters; 17.09.2013