Плюсы / минусы строго названных / подписанных сборок - PullRequest
8 голосов
/ 07 апреля 2011

У нас есть решение со многими проектами (возможно, 20 или более). Недавно мы внесли некоторые изменения, которые требуют, чтобы пара этих сборок вызывалась из COM, а это значит, что нам нужно дать им строгое имя. Эти сборки ссылаются на других в нашем проекте, а это значит, что они также должны иметь строгие имена. Они также имеют атрибуты InternalsVisibleTo, поэтому предоставленные сборки также должны иметь строгое имя.

Вместо того, чтобы искать, какие сборки нуждаются в подписи / строгом именовании, я рекомендовал просто назвать их всех строго. Это поставило пару людей в шок от риска. Я утверждаю, что риска нет, но им нужны плюсы и минусы подписания собраний. Единственное, что мне удалось придумать, это:

Плюсы

  • Требуется вызвать сборка от COM
  • Это позволило бы нам поставить сборки в GAC (мы не делай этого сейчас)
  • Это предотвращает вмешательство (мы размещаем приложение, это не установлено на клиентских сайтах, так что не такая уж большая проблема)

Против

  • Требуется, чтобы каждая сборка, которую мы используем в будущем, была подписана

У меня есть два конкретных вопроса:

  1. Не могли бы вы сказать, в общем, хорошая идея подписывать сборки со строгими именами?
  2. Можете ли вы вспомнить другие плюсы или минусы?

Ответы [ 3 ]

5 голосов
/ 07 апреля 2011

Ваш единственный мошенник - обманЭто на самом деле профессионал.

Без подписи сборки могут использоваться исключительно без подписи сборки.Подписанные сборки могут использоваться как подписанными сборками, так и неподписанными сборками.

3 голосов
/ 02 декабря 2011

"Требуется вызвать сборку из COM"

Вам не нужно подписывать сборку, чтобы сделать ее COM-компонентом. Я реализовал много COM-серверов без подписи сборки.

еще несколько минусов:

  • вы не можете обновить сборку новой версией без замены всех других сборок, для которых она требуется => нет общих компонентов легко
  • не может использовать не подписанные сторонние компоненты (многие Free / OpenSource)
  • подписанные сборки в GAC не проверены, кто-то злой может изменить / заменить вашу подписанную сборку на что угодно, и ваши программы с радостью примут это что угодно ссылка
3 голосов
/ 07 апреля 2011
  • ClickOnce требует, чтобы ваши сборки были подписаны
  • Многие проекты с открытым исходным кодом не распространяют подписанные сборки, и зачастую нетривиально компилировать с вашим собственным SNK
...