Как создать snk для .NETCore в Linux для сборок со строгими именами

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

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

Я нашел двоичный файл mono, также называемый 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 (где у вас есть инструменты пользовательского интерфейса)!


person ThommyB    schedule 05.09.2018    source источник


Ответы (1)


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

person Serge K    schedule 14.04.2019