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

.net core 如何在Linux中为强命名程序集创建.NETCore的snk,.net-core,rider,.net Core,Rider,我使用CentOS 7和JetBrains Rider IDE编写.NETCore服务器 我需要为.NETCore 2.0创建一组strong命名程序集(库项目)。我知道在Windows上我可以使用sn.exe工具创建snk密钥文件。有人能详细说明一下如何在CentOS机器上实现这一点吗 我发现了一个名为sn()的单二进制文件,它似乎是sn.exe的等价文件,但它似乎很旧(2003/2004),我不确定它是否是今天应该使用的工具 此外,我还需要使用官方(来自商业供应商)代码签名证书对一些DLL进

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

我需要为.NETCore 2.0创建一组strong命名程序集(库项目)。我知道在Windows上我可以使用
sn.exe
工具创建
snk
密钥文件。有人能详细说明一下如何在CentOS机器上实现这一点吗

我发现了一个名为
sn
()的单二进制文件,它似乎是
sn.exe
的等价文件,但它似乎很旧(2003/2004),我不确定它是否是今天应该使用的工具

此外,我还需要使用官方(来自商业供应商)
代码签名证书对一些DLL进行签名。我不理解
snk
文件与我获得的证书之间的关系(它有
p12
扩展名)

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

<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
<SignAssembly>True</SignAssembly>
MyKey.snk
真的
如果有人能解释如何(在CentOS 7 targeting.NetCore 2.0上)执行以下操作,我将不胜感激:

  • 创建强命名程序集

  • 使用现有的商业证书签署程序集


  • 请注意,我没有使用VisualStudio(您有UI工具的地方)

    sn-k sgKey.snk

    它在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*(必须提升)

    退出具有密钥对的程序集:
    sn–Ra assembly.dll private.snk