我使用JetBrains Rider IDE使用CentOS 7编写.NETCore服务器。
我需要为.NETCore 2.0创建一堆 strong命名程序集(库项目)。我知道在Windows上我可以使用sn.exe
工具来创建snk
密钥文件。有人可以详细说明如何在CentOS计算机上执行此操作吗?
我发现了一个也称为sn
(see man page)的单二进制文件,似乎与sn.exe
等价,但它似乎已经很旧了(2003/2004),但我不是当然,如果这是一种工具,则应该使用 TODAY 。
我还需要与官方(来自商业供应商)code signing certificate
进行签名。我不了解snk
文件与我得到的证书(扩展名为p12
)之间的关系。
通过一些研究,我了解到,我需要在.csproj
文件中添加以下标记到建议MSBUILD
中,以创建强命名程序集:
<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
<SignAssembly>True</SignAssembly>
如果有人能解释如何做(在针对.NetCore 2.0的 CentOS 7 上),我将不胜感激:
创建强大的命名程序集
使用现有的商业证书签署装配体
请注意,我没有使用VisualStudio(您拥有UI工具)!
答案 0 :(得分:0)
sn -k sgKey.snk
它可以在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