У меня есть две библиотеки DLL, app1.dll и app2.dll, которые используют одну и ту же третью dll, util.dll, которая может иметь немного другое поведение при создании для конкретного приложения.
Я хочу добиться того, чтобы app1.dll и app2.dll были изолированы в зависимости от используемых ими версий util.dll. В MSDN я прочитал, что решением является присвоение util.dll строгого имени, т.е. что это строгое имя содержит имя и версию dll, а также отпечаток пальца из-за подписи.
Сейчас я создаю util.dll ...
- для app1 с KeyFileApp1.snk и версией 1.0.0.1
- для app2 с KeyFileApp2.snk и версией 1.0.0.2
и это работает на целевой машине при развертывании приложений с соответствующей сборкой util.dll.
Однако у меня есть некоторые неясности:
- Достаточно ли будет всегда создавать util.dll с версией 1.0.0.0, но с разными ключевыми файлами для обоих приложений и иметь оба приложения, в конце концов, используя правильную dll?
- Учитываются ли строгие имена только при помещении библиотеки DLL в глобальный кеш сборок или также при ее использовании в качестве частной сборки?