Как использовать 2 сторонние библиотеки .net, когда их неуправляемые зависимости конфликтуют? - PullRequest
5 голосов
/ 15 сентября 2011

Скажем, у меня есть сборка .net A.dll, которая использует стороннюю сборку .net B.dll и стороннюю сборку .net C.dll.

Оказывается, что внутренне B.dll использует неуправляемую сборкуD.dll (версия 1) и C.dll используют неуправляемую сборку D.dll (версия 2).

B и C поставляются различными поставщиками и тестируются только с их правильной версией D.dll.

Как я могу развернуть A так, чтобы B и C работали правильно?

Редактировать:

Я думаю, что есть три различные проблемы:

1) Каквнешнее управление путями B и C, используемыми для поиска D.

2) Как внешнее управление путями D, используемыми для его собственных зависимостей.

3) Как гарантировать, что процесс направляет вызовы функцийправильно.

Мои исследования показывают, что без контроля времени компиляции всех модулей это может быть невозможно ...

1 Ответ

1 голос
/ 16 сентября 2011

Я бы попытался настроить несколько папок bin с помощью раздела "зондирующий".

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin\B;bin\C"/>
      </assemblyBinding>
   </runtime>
</configuration>

тогда я бы поместил B.dll и его неуправляемые зависимости в папку bin \ B, а C.dll и его неуправляемые зависимости в папку bin \ C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...