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

Tho*_*myB 5 .net-core rider

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

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

我发现了一个单二进制文件也称为sn参见手册页),它似乎是sn.exe等效的,但它似乎很旧(2003 / 2004),我不确定它是否是今天应该使用的工具。

另外,我需要与官方(来自商业供应商)签署一些 DLL 。我不明白文件和我获得的证书之间的关系(它有扩展名)。code signing certificatesnkp12

通过一点研究,我了解到,在我的.csproj文件中,我需要将以下标签添加到建议中MSBUILD以创建强命名程序集:

<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
<SignAssembly>True</SignAssembly>
Run Code Online (Sandbox Code Playgroud)

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

  1. 创建强命名程序集

  2. 使用现有商业证书签署装配

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

Ser*_*e K 2

sn -k sgKey.snk

\n\n

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

\n\n

它可以在 Linux 上运行。应该安装单声道。尝试使用.Net Core 2.2

\n\n
\n\n

一些有用的命令:

\n\n

创建密钥对: sn \xe2\x80\x93k private.snk

\n\n

提取公钥: sn \xe2\x80\x93p private.snk public.snk

\n\n

查看公钥和公钥令牌: sn \xe2\x80\x93tp public.snk

\n\n

查看程序集的公钥和公钥令牌: sn \xe2\x80\x93Tp assembly.dll

\n\n

从程序集中提取公钥: sn \xe2\x80\x93e assembly.dll public.snk

\n\n

验证程序集是否已签名以及使用什么密钥: sn \xe2\x80\x93vf assembly.dll

\n\n

显示注册用于跳过验证的机器上的程序集列表:sn \xe2\x80\x93Vl

\n\n

注册程序集以跳过验证: sn \xe2\x80\x93Vr * (must elevate)

\n\n

使用密钥对重新签署程序集: sn \xe2\x80\x93Ra assembly.dll private.snk

\n