Хранение DLL в центральном расположении без GAC - PullRequest
1 голос
/ 01 апреля 2009

Нам преподносят уникальную, болезненную ситуацию. Традиционно мы использовали файлы GAC и Policy Files для управления версиями DLL для наших приложений .NET. Однако у нас очень уникальная ситуация, и мы сталкиваемся с серьезными проблемами, поскольку некоторые из наших приложений НЕ уважают файлы политик. В частности, приложения .NET 2.0, которые ссылаются на DLL-библиотеки .NET 1.1, имеющие файл политики.

У нас есть смешанный набор элементов, которые динамически (загружаются с помощью отражения) в приложении для Windows, а также большое количество веб-приложений. Мы стремимся перейти к большему количеству «Централизованного хранилища DLL», а не беспокоиться о версии GAC. Но мы не можем найти способ сказать нашему приложению «Ищите здесь какие-либо библиотеки DLL».

Рассматривая некоторые узлы с информацией о сборке (http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx), мы можем частично пройти туда, но мы должны определить каждую DLL-библиотеку, которую нужно искать, это невозможно, так как у нас около 200 различных приложений это потребовало бы регулярных обновлений web.config, поскольку мы обновляем версии общих DLL.

Кто-нибудь имеет хорошее представление о том, как мы можем перемещать ссылки DLL? CopyLocal не вариант, так как у нас есть время, когда нам НУЖНО приложениям использовать новые версии общих DLL. GAC, по крайней мере, сейчас, на самом деле тоже не вариант.

1 Ответ

1 голос
/ 01 апреля 2009

Вы можете использовать Подсказки CodeBase в вашем app.config,

<?xml version="1.0"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="MyDll" />
        <codeBase version="1.0.1000.20000" href="file:///c:\SharedDlls" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Ваша DLL должна иметь строгое имя, если вы хотите использовать это в файле Machine.Config (это не должно быть проблемой для вас, если вы пришли из мира GAC и требуется для сертификации Microsoft).

Вот ссылка в блоге MSDN , которая дает более глубокий совет.

...