我使用JetBrains Rider IDE使用CentOS 7编写.NETCore服务器。
我需要为.NETCore 2.0创建一堆强命名的程序集(库项目)。我知道在Windows上我可以使用sn.exe
工具来创建snk
密钥文件。任何人都可以在CentOS机器上详细说明如何做到这一点?
我发现了一个单声道的二进制文件,也称为sn
(see man page),似乎是sn.exe
等效,但它似乎很旧(2003/2004),我不确定,如果它是一个应该使用的工具今天。
此外,我需要与官方(来自一个商业供应商)code signing certificate
签署一些DLL。我不明白snk
文件和我得到的证书之间的关系(它有一个p12
扩展名)。
通过研究一点,我读到,在我的.csproj
文件中,我需要添加以下标签来建议MSBUILD
创建强大的命名程序集:
<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
<SignAssembly>True</SignAssembly>
如果有人能解释如何(在CentOS 7上定位.NetCore 2.0),我将不胜感激:
请注意,我没有使用VisualStudio(你有UI工具)!
sn -k sgKey.snk
它适用于Linux。应该安装Mono。试过.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