CA2210: сборки должны иметь допустимые строгие имена
TypeName |
AssembliesShouldHaveValidStrongNames |
CheckId |
CA2210 |
Категория |
Microsoft.Design |
Критическое изменение |
Не критическое |
Причина
Сборка не имеет строгого имени, не удалось проверить строгое имя или строгое имя не будет являться допустимым при текущих параметрах реестра компьютера.
Описание правила
Это правило получает и проверяет строгое имя сборки.Нарушение возникает, если выполняется одно из следующих условий:
Сборка не имеет строгого имени.
Сборка была изменена после подписания.
Сборка имеет отложенную подпись.
Подпись сборки завершилась неудачей или сборка была подписана неверно.
Для проверки сборки требуются параметры реестра.Например, программа строгих имен (Sn.exe) была использована, чтобы отменить проверку сборки.
Строгое имя защищает клиентов от случайной загрузки сборки, которая была подменена.Сборки без строгих имен следует развертывать лишь в крайне небольшом числе случаев.При обмене или распространении сборок без правильной подписи сборки могут быть подменены, среда CLR может не загрузить сборку или пользователь может быть вынужден отключить проверку на своем компьютере.Сборка без строгого имени имеет следующие недостатки:
Невозможно проверить ее происхождение.
Среда CLR не может предупредить пользователей, если содержимое сборки было подменено.
Сборку не удается загрузить в глобальный кэш сборок.
Обратите внимание, что для загрузки и анализа сборки с отложенной сигнатурой нужно отключить проверку сборки.
Устранение нарушений
Создание файла ключа
Необходимо использовать одну из следующих процедур:
Используйте компоновщик сборок (Al.exe) в SDK .NET Framework.
Для .NET Framework версий 1.0 и 1.1 используйте атрибут AssemblyKeyFileAttribute или AssemblyKeyNameAttribute.
Для .NET Framework 2,0, используйте параметры компилятора /keyfile или /keycontainer либо параметры компоновщика /KEYFILE (задание ключа или пары ключей для подписи сборки) или /KEYCONTAINER (задание контейнера ключей для подписи сборки) в C++.
Подпись сборки строгим именем в Visual Studio
Откройте решение в Visual Studio.
В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт Свойства.
Выберите вкладку Подпись и установите флажок Подписать сборку.
Выберите файл ключей строгого имени и Создать.
Откроется окно Имя ключа строгого имени.
Укажите имя для файла ключа в поле Имя файла ключей.
Выберите, следует ли защитить ключ паролем, и нажмите кнопку ОК.
В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Построить.
Подпись сборки строгим именем вне Visual Studio
- Используйте средство для работы строгими именами (Sn.exe), предоставляемое в составе .NET Framework SDK.Для получения дополнительной информации см. Sn.exe (средство строгих имен).
Отключение предупреждений
Предупреждение этого правила следует отключать только в среде, где подмена содержимого невозможна.
См. также
Задачи
Практическое руководство. Подписание сборки строгим именем