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


Практическое руководство. Создание пары открытого и закрытого ключей

Обновлен: Ноябрь 2007

Для подписи сборки строгим именем необходимо иметь пару ключей — открытый и закрытый. Эта пара открытого и закрытого ключей шифрования используется в процессе компиляции для создания сборки со строгим именем. Пару ключей можно создать с использованием средства для работы со строгими именами (Sn.exe). Файлы пары ключей обычно имеют расширение SNK.

6f05ezxy.alert_note(ru-ru,VS.90).gifПримечание.

В Visual Studio 2005 интегрированные среды разработки C#, Visual Basic и Visual J# позволяют создавать пары ключей без использования средства Sn.exe и подписывать сборки. У этих интегрированных сред разработки есть вкладка Подпись в конструкторе проектов. Интегрированная среда разработки Visual C++ позволяет указать расположение уже существующего файла ключа на странице свойств Дополнительно подраздела Компоновщик в разделе Свойства конфигурации окна "Страницы свойств". Использование AssemblyKeyFileAttribute для идентификации файлов пары ключей в Visual Studio 2005 было признано устаревшим.

Создание пары ключей

  • В командной строке введите следующую команду:

    sn –k <имя файла>

    В этой команде имя файла — имя выходного файла, содержащего пару ключей.

В следующем примере создается пара ключей с именем sgKey.snk.

sn -k sgKey.snk

Если необходима отложенная подпись сборки и имеется контроль над всей парой ключей (а это вероятно только в сценариях проверки), для создания пары ключей и получения из нее открытого ключа для записи его в отдельный файл можно использовать следующие команды. Сначала создается пара ключей:

sn -k keypair.snk
  • Затем выполняется извлечение открытого ключа из пары и копирование его в отдельный файл:
sn -p keypair.snk public.snk
  • После создания пары ключей необходимо поместить файл туда, где его смогут найти средства подписи строгого имени.

При подписи сборки строгим именем, компоновщик сборок (Al.exe) выполняет поиск файла ключа относительно текущей и выходной папки. При использовании компиляторов, работающих в режиме командной строки, достаточно просто скопировать ключ в текущий каталог, содержащий модули кода.

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

<Assembly: AssemblyKeyFileAttribute("..\..\key.snk")>
[assembly: AssemblyKeyFileAttribute(@"..\..\key.snk")]

См. также

Другие ресурсы

Создание и использование сборок со строгими именами