У нас есть решение, в котором много проектов (возможно, 20 и более). Недавно мы внесли некоторые изменения, которые требуют, чтобы пара этих сборок могла быть вызвана из COM, а это значит, что нам нужно присвоить им строгие имена. Эти сборки ссылаются на другие в нашем проекте, что означает, что они также должны иметь строгие имена. У них также есть атрибуты InternalsVisibleTo, поэтому предоставленные сборки также должны иметь строгие имена.
Вместо того, чтобы искать и пытаться найти, какие сборки требуют подписи / строгого именования, я рекомендовал просто дать им строгие имена. Это вызвало у некоторых людей беспокойство по поводу риска. Я утверждаю, что риска нет, а хотят плюсы и минусы подписи сборок. Единственное, что мне удалось придумать, это:
Плюсы
- Требуется вызвать сборку из COM
- Это позволило бы нам поместить сборки в GAC (сейчас мы этого не делаем)
- Это предотвращает взлом (мы размещаем приложение, оно не установлено на клиентских сайтах, так что это не такая уж большая проблема)
Минусы
- Это требует, чтобы каждая сборка, которую мы используем в будущем, была подписана
У меня два конкретных вопроса:
- Вы бы сказали, что в целом неплохо подписывать / строго именовать сборки?
- Можете ли вы назвать другие плюсы или минусы?