我使用JetBrains Rider IDE使用CentOS 7编写.NETCore服务器。

我需要为.NETCore 2.0创建一堆强命名程序集(库项目)。我知道在Windows上我可以使用sn.exe工具来创建snk密钥文件。有人可以详细说明如何在CentOS机器上执行此操作吗?

我发现了一个也称为snsee 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/

10-11 07:44