У меня есть проект библиотеки классов vb.net 3.5, который должен ссылаться на две сборки, которые имеют одинаковое пространство имен.У нас есть две сторонние библиотеки, в которых одна версия 5.1, а другая версия 6.1.У них одинаковое имя файла dll, и они используют одно и то же пространство имен и имена функций / классов.Проект должен использовать один или другой в зависимости от конкретной ситуации.
Я исследовал процесс ac #, который использует функцию "внешнего псевдонима" для извлечения различных сборок.
http://blogs.msdn.com/b/ansonh/archive/2006/09/27/774692.aspx
Для чего используется свойство Aliases ссылок на сборки в Visual Studio 8
Похоже, эта функция не полностью доступнадля vb.net.
Вещи, которые я пробовал
Я переименовал 2-й DLL и добавил обе ссылки на свой проект.На данный момент я получаю тонны: 'blah' is ambiguous in the namespace
.
Так что мне нужно псевдоним различных версий.В vb.net вы можете использовать псевдонимы для оператора импорта, например:
Imports version5 = Somedll.Something
Проблема в том, что я не могу установить псевдоним ссылки на сборку для разных версий библиотеки DLL.Очевидно, в vb.net вы не можете установить их в окне свойств ссылки.Поэтому я попытался установить их в своем файле проекта следующим образом:
<Reference Include="somedll.5.Navigation">
<HintPath>..\..\Utility\ThirdPartyDLLS\somedll.5.dll</HintPath>
<Aliases>SomeDLL5</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="somedll.6.Navigation, Version=6.1.0.0, Culture=neutral, PublicKeyToken=6d02be8724ca751c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Utility\ThirdPartyDLLS\somedll.6.dll</HintPath>
<Aliases>SomeDLL6</Aliases>
<Private>False</Private>
</Reference>
Я бы тогда ожидал, что это сработает:
Imports version5 = SomeDLL5.Something
Imports version6 = SomeDLL6.Something
Но «SomeDLL5 / 6» не отображаетсяв интеллигентности.Так как я могу ссылаться на оба DLL в одном проекте?