выгода подписания dll со строгим именем - PullRequest
8 голосов
/ 06 декабря 2011

У меня есть решение c #, которое содержит несколько библиотек классов c #. Недавно я проводил некоторые исследования, и предлагается, чтобы выходные сборки из моих библиотек были подписаны, поэтому они должны быть подписаны строгим именем. Во-первых, мне интересно, лучше ли мне прогрессировать с таким? Библиотеки, которые выводятся из этих библиотек классов, используются во многих других проектах.

Если из моего предыдущего вопроса было сказано, что да, я должен подписать мои dll, .snk, который я использую, это можно использовать для каждой из библиотек классов в решении? Или это должен быть один ключ на библиотеку классов?

Ответы [ 3 ]

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

Иногда необходимо подписать сборку. Это верно, если вы хотите GAC вашей сборки или если подписанная сборка хочет сослаться на другую сборку.

Вы можете повторно использовать один и тот же файл .snk, в результате чего будет получен один и тот же токен открытого ключа для всех сборок.

1 голос
/ 06 декабря 2011

Важно, если вы собираетесь поместить сборку в GAC для использования большим количеством сборок.

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

Хорошо использовать несколько (возможно, только один) файлов SNK для каждой сущности (отдельного лица, коллектива, группы с открытым исходным кодом или компании), потому что, если кто-то доверяет вам (означает ли вы «частное лицо», компанию и т. Д.), И они поэтому доверяйте открытому ключу, который, как они уверены, принадлежит вам, и тогда он будет доверять ему в следующий раз. Вы бы не хотели каждый раз подписывать чеки разной собственноручной подписью?

0 голосов
/ 13 апреля 2018

Подписание DLL является требованием для публикации вашей DLL в GAC. Реальные преимущества подписания dll приведены ниже.

1. Versioning

2. Аутентификация

а. Управление версиями обозначает версию, на которой была собрана dll, и, когда они помещаются в GAC, могут существовать две dll с одинаковыми именами, но с другой версией

б. Аутентификация обозначает , если dll не подделан и существует ли он так же, как и при создании.

Подробный блог по подписанию dll доступен здесь

...