Как создать snk для .NETCore в Linux для строго именованных сборок - PullRequest
0 голосов
/ 05 сентября 2018

Я пишу .NETCore серверы, используя CentOS 7, используя JetBrains Rider IDE.

Мне нужно создать группу строго именованных сборок (библиотечные проекты) для .NETCore 2.0. Я знаю, что в Windows я могу использовать инструмент sn.exe для создания файлов ключей snk. Кто-нибудь может рассказать, как это сделать на компьютере с CentOS?

Я обнаружил монофонический двоичный файл, также называемый sn ( см. Справочную страницу ), который выглядит как sn.exe эквивалентный, но кажется довольно старым (2003/2004), и я не конечно, если это инструмент, нужно использовать СЕГОДНЯ .

Также мне нужно подписать некоторые библиотеки DLL с официальным (от коммерческого поставщика) code signing certificate. Я НЕ понимаю связь между файлом snk и полученным сертификатом (он имеет расширение p12).

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

<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
<SignAssembly>True</SignAssembly>

Буду очень признателен, если кто-нибудь сможет объяснить, как (на CentOS 7 для таргетинга .NetCore 2.0 ):

  1. Создание сборок со строгими именами

  2. Подпишите сборку с существующим коммерческим сертификатом

Обратите внимание, что я НЕ использую VisualStudio (где у вас есть инструменты пользовательского интерфейса)!

1 Ответ

0 голосов
/ 14 апреля 2019

sn -k sgKey.snk

https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-create-a-public-private-key-pair

Работает в Linux. Моно должно быть установлено. Пробовал с .Net Core 2.2


Несколько полезных команд:

Создать пару ключей: sn –k private.snk

Извлечение открытого ключа: sn –p private.snk public.snk

Просмотр открытого ключа и токена открытого ключа: sn –tp public.snk

Просмотр открытого ключа и токена открытого ключа сборки: sn –Tp assembly.dll

Извлечение открытого ключа из сборки: sn –e assembly.dll public.snk

Убедитесь, что сборка подписана и с каким ключом: sn –vf assembly.dll

Показать список сборок на машине, зарегистрированной для пропуска проверки: sn –Vl

Регистрация сборок для пропуска проверки: sn –Vr * (must elevate)

Повторная сборка с парой ключей: sn –Ra assembly.dll private.snk

...