Поделиться через


CA2210: сборки должны иметь допустимые строгие имена

TypeName

AssembliesShouldHaveValidStrongNames

CheckId

CA2210

Категория

Microsoft.Design

Критическое изменение

Не критическое

Причина

Сборка не имеет строгого имени, не удалось проверить строгое имя или строгое имя не будет являться допустимым при текущих параметрах реестра компьютера.

Описание правила

Это правило получает и проверяет строгое имя сборки. Нарушение возникает, если выполняется одно из следующих условий:

  • Сборка не имеет строгого имени.

  • Сборка была изменена после подписания.

  • Сборка имеет отложенную подпись.

  • Подпись сборки завершилась неудачей или сборка была подписана неверно.

  • Для проверки сборки требуются параметры реестра. Например, программа строгих имен (Sn.exe) была использована, чтобы отменить проверку сборки.

Строгое имя защищает клиентов от случайной загрузки сборки, которая была подменена. Сборки без строгих имен следует развертывать лишь в крайне небольшом числе случаев. При обмене или распространении сборок без правильной подписи сборки могут быть подменены, среда CLR может не загрузить сборку или пользователь может быть вынужден отключить проверку на своем компьютере. Сборка без строгого имени имеет следующие недостатки:

  • Невозможно проверить ее происхождение.

  • Среда CLR не может предупредить пользователей, если содержимое сборки было подменено.

  • Сборку не удается загрузить в глобальный кэш сборок.

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

Устранение нарушений

Создание файла ключа

Необходимо использовать одну из следующих процедур:

Подпись сборки строгим именем в Visual Studio

  1. Откройте решение в Visual Studio.

  2. В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт Свойства.

  3. Выберите вкладку Подпись и установите флажок Подписать сборку.

  4. Выберите файл ключей строгого имени и Создать.

    Откроется окно Имя ключа строгого имени.

  5. Укажите имя для файла ключа в поле Имя файла ключей.

  6. Выберите, следует ли защитить ключ паролем, и нажмите кнопку ОК.

  7. В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Построить.

Подпись сборки строгим именем вне Visual Studio

  • Используйте средство для работы строгими именами (Sn.exe), предоставляемое в составе .NET Framework SDK. Дополнительные сведения см. в разделе Sn.exe (средство строгих имен).

Отключение предупреждений

Предупреждение этого правила следует отключать только в среде, где подмена содержимого невозможна.

См. также

Задачи

Практическое руководство. Подписание сборки строгим именем

Ссылки

Sn.exe (средство строгих имен)

System.Reflection.AssemblyKeyFileAttribute

System.Reflection.AssemblyKeyNameAttribute