Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы подписать сборку строгим именем, необходимо иметь пару ключей (открытого и закрытого). Эта пара открытых и закрытых криптографических ключей используется во время компиляции для создания сборки с строгим именем. Вы можете создать пару ключей с помощью средства "Строгое имя" (Sn.exe). Файлы пар ключей обычно имеют расширение SNK .
Замечание
В .NET (.NET Core и .NET 5 и более поздних версиях) строгие имена не имеют проверки во время выполнения. Подписывание строгого имени имеет значение в основном для .NET Framework и .NET Standard 2.0 в сценариях совместимости с .NET Framework. Если вы не нацелены на .NET Framework, вам обычно не нужно задавать строгое имя сборки, если это не требуется вашей организацией или потребителями.
Замечание
В Visual Studio страницы свойств проекта C# и Visual Basic содержат вкладку Signing, которая позволяет выбирать существующие файлы ключей или создавать новые файлы ключей без использования Sn.exe. В Visual C++ можно указать расположение существующего файла ключа на странице "Дополнительно" в разделе компоновщика раздела "Свойства конфигурации" окна "Страницы свойств". Использование атрибута AssemblyKeyFileAttribute для идентификации пар файлов ключей было устарело начиная с Visual Studio 2005 года.
Создание пары ключей
Замечание
Sn.exe не входит в пакет SDK .NET в любой операционной системе. Он доступен только в Windows, где его можно получить, установив Visual Studio или пакет SDK Windows.
Чтобы создать пару ключей, в командной строке введите следующую команду:
sn –k<Имя файла>
В этой команде имя файла — это имя выходного файла, содержащего пару ключей.
В следующем примере создается пара ключей с именем sgKey.snk.
sn -k sgKey.snk
Если вы планируете отложить подписывание сборки и управлять всей парой ключей (маловероятно, вне сценариев тестирования), можно использовать следующие команды для создания пары ключей и извлечения открытого ключа из него в отдельный файл. Сначала создайте пару ключей:
sn -k keypair.snk
Затем извлеките открытый ключ из пары ключей и скопируйте его в отдельный файл:
sn -p keypair.snk public.snk
Создав пару ключей, необходимо разместить файл, где средства подписывания строгого имени смогут его обнаружить.
При подписи сборки с строгим именем компоновщик сборок (Al.exe) ищет файл ключа относительно текущего каталога и выходного каталога. При использовании компиляторов командной строки можно просто скопировать ключ в текущий каталог, содержащий модули кода.
Если вы используете более раннюю версию Visual Studio, которая не содержит вкладку Signing в свойствах проекта, рекомендуемое расположение файла ключа — это каталог проекта с атрибутом файла, указанным следующим образом:
[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>