Strong Naming или Authenticode подписывают новую сборку
Конечный пользователь попросил меня добавить "Строгое именование" к одному из моих компонентов, потому что они хотят ссылаться на него из сборки со строгим именем.
У меня уже есть сертификат authenticode, поэтому я задаюсь вопросом - чтобы сделать мой компонент пригодным для использования их строго именованным компонентом, достаточно ли мне просто подписать компонент моим ключом authenticode?
Или я должен "подписать строгое имя" сборку (используя Al.exe), чтобы она считалась "строгое имя"?
Я не могу найти какую-либо документацию "строгое имя vrs authenticode", которая явно относится к этому.
2 ответа
Вам не нужно использовать строгие имена, независимо от того, применяете ли вы подпись authenticode. Это - выбор, и он обычно полностью ортогональн к выбору, чтобы применить подпись authenticode. Если бы вы могли предоставить больше информации, касающейся ваших целей по подписанию сильного имени, было бы значительно проще дать вам окончательный ответ относительно того, будут ли они решаться с помощью подписи аутентичного кода...
Обновлено после добавления информации к вопросу...
Подпись аутентичного кода не приведет к тому, что сборка будет считаться строго именованной. Чтобы сборка со строгим именем могла ссылаться на вашу сборку, вы должны применить сигнатуру строгого имени (независимо от того, имеет ли ваша сборка также подпись authenticode).
Strongnaming и Authenticode используются для разных целей. Strongnaming в основном используется для предотвращения подмены (замены) сборки и "связывания" нескольких сборок вместе, чтобы все они использовали предопределенную версию друг друга. Authenticode используется для аутентификации автора модуля PE (Win32 EXE, DLL или сборка.NET и т. Д.). Следовательно, вы можете использовать любой или оба из них параллельно.
Примечание. Проверка подписи Authenticode в некоторых случаях может занимать много времени (секунды или даже десятки секунд), и в зависимости от архитектуры вашего приложения это может быть неприемлемым.