如何在Linux中为强名称程序集创建.NETCore的snk

问题描述 投票:2回答:1

我使用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>

如果有人能解释如何(在CentOS 7上定位.NetCore 2.0),我将不胜感激:

  1. 创建强名称程序集
  2. 使用现有商业证书签署程序集

请注意,我没有使用VisualStudio(你有UI工具)!

.net-core rider
1个回答
0
投票

sn -k sgKey.snk

https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-create-a-public-private-key-pair

它适用于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

热门问题
推荐问题
最新问题