Можно ли применить политику издателя к строго названной частной сборке?

Я создал общую библиотеку на работе, но в отличие от этого вопроса, она не публикуется в GAC. Вместо этого он публикуется в частном порядке в папке установки конкретной компании. РЕДАКТИРОВАТЬ: все внутренние приложения находятся в этой же папке.

Можно ли по-прежнему применять политику издателя, позволяющую более старым приложениям использовать более новые версии DLL? Эта статья звучит так, как я могу, но она мне не совсем понятна.

Если так, что я должен распространять в папку установки моей компании?

  1. Файл конфигурации для общей библиотеки? (policy.1.0.MyLibrary.config) (Это будет проще всего.)
  2. Политика DLL для общей библиотеки? (policy.1.0.MyLibrary.dll - соответствующая версия #1.)
  3. Или набор файлов конфигурации для каждого приложения, которое использует общую библиотеку? (MyApp1.exe.config, MyApp2.exe.config и т. Д.) (YUCK!)

1 ответ

  1. было бы все, что вам нужно ИМО. Или, если быть точным, в вашем настройке app.config элемент bindingRedirect, и все готово.

Упс извините. bindingRedirect требует, чтобы папка находилась в папке вашего приложения.

В чем преимущество "папки установки для конкретной компании", которая отсутствует в папке приложения в отношении GAC? ИМО, GAC лучше, если они хотят, чтобы сборки были общими.

Если они настаивают на том, что вы можете "вручную" загрузить сборки. Посмотрите на событие AppDomain.AssemblyResolve.

Другие вопросы по тегам