我使用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>
如果有人可以解释如何(在针对.NetCore 2.0的CentOS 7上),我将不胜感激:
创建强大的命名程序集
使用现有的商业证书签署装配体
请注意,我没有使用VisualStudio(您拥有UI工具)!
最佳答案
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
关于.net-core - 如何在Linux中为.NETCore创建用于强命名程序集的snk,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52183861/