Ссылка dll в C: \ Programs файлы без копирования - PullRequest
0 голосов
/ 24 января 2019

У меня есть внешний вид vsto, который ссылается на мою библиотеку my.dll . Эта dll ссылается на стороннюю dummy.dll в C: \ Programs Files \ company \ dummy.dll

Объект: если dummy.dll изменен, он будет независим с my.dll

В проекте my.dll :

Если я установил для параметра copy local значение true, dummy.dll копируется в корзину, что не соответствует ожиданиям, поскольку my.dll не знает о более новая версия dummy

Если я установил для параметра copy local значение false, возникает исключение, так как файл не найден.

Я нашел эту статью сообщений Microsoft и других в SO, в которых говорится о GAC, .config или AssemblyResolve, но я думаю, что это не похоже на мою ситуацию, потому что это vsto.

Как я могу использовать dummy.dll в программных файлах c: \, не копируя его?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Лучше всего будет использовать параметр exe.config из этой статьи.Мы делаем это все время для ссылки на сторонние dll-приложения, которые находятся в каталогах этой стороны.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="MyAssembly2" publicKeyToken="307041694a995978"/>
            <codeBase version="1.0.1524.23149" href="C:\Myassemblies\MyAssembly2.dll"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>
0 голосов
/ 24 января 2019

Если библиотека DLL находится в подкаталоге вашего приложения, вы можете указать .NET связать ее, используя путь поиска части конфигурации приложения.

Если DLL находится в каталоге, который не является подкаталогом вашего приложения, вы должны будете поместить его в глобальный кеш сборок . Это обычно не рекомендуется .

Самый простой подход - скопировать файл. Именно так обычно поступают с такими вещами. До .NET библиотеки DLL могли быть где угодно, но такое расположение часто приводило к тому, что называлось DLL Hell . Наличие частной копии библиотеки DLL облегчает многие проблемы развертывания, и использование дискового пространства не должно быть проблемой.

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