Plugin DLL używający innej biblioteki DLL

0

Witam,

Mam małą aplikację która składa się z kliku DLL - jednej będącej biblioteką bazową (Core.dll), jedną biblioteką zewnętrzną (EPPlus.dll) i 3(i potencjalnie kolejne) jest to dynamicznie ładowany DLL w formie pluginiu. Plugin wykorzystuje EPPlus i Core.dll (definicje niektórych typów)
Ze względu na logiczny układ folderów chciałbym żeby pluginy znajdowały się w osbnych folderach (coś w stylu ./Templates/xxx/) i stamtąd były ładowane bo oprócz nich w tych folderach będą pliki pomocnicze. Niestety aby tak to zadziałało to do każdego podfolderu w Templates musiałbym skopiować EPPPlus i Core. Z waidomych względów nie pasuje mi takie wyjście i chciałbym trzymać EPP i Core w katalogu głównym aplikacji i nie powielać go w templates.

W jaki sposób mogę to osiągnąć ?

0

Możesz spróbować dodać do konfiguracji <probing>:

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

Coś więcej na temat: https://msdn.microsoft.com/en-us/library/4191fzwb(v=vs.110).aspx

0

Polecam funkcję SetDllDirectory()

https://msdn.microsoft.com/en-us/library/windows/desktop/ms686203(v=vs.85).aspx

Ustawisz sobie na ten folder z aplikacją i potem LoadLibrary() dla pluginów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1