【问题标题】:Strong name assembly using installed certificate使用已安装证书的强名称程序集
【发布时间】:2021-03-05 13:38:07
【问题描述】:

Certmgr 显示我安装了公司的 Symantec Class 3 SHA256 Code Signing CA,以及名称中带有 Private 的 CA。我可以将此行添加到我的程序集信息中吗:

[assembly: AssemblyKeyName("what name do I use here?")]

在构建时强命名程序集?那会在证书存储中找到公钥/私钥对并将它们插入我的程序集中吗?还是我必须从证书中提取公钥/私钥对并使用我在互联网上看到的详细记录的过程来进行强命名?

我已尝试使用公司名称的变体进行上述操作,但构建失败:

键集不存在

【问题讨论】:

标签: c# certificate strongname


【解决方案1】:

这是一篇解释需要做什么的博文:https://matthewdippel.blogspot.com/2017/09/howto-strong-name-sign-net-assembly.html

但是,有一个丑陋的 catch-22。运行 sn.exe -c,如果它最终更改 CSP,则只能作为提升的用户执行。但是,同一提升的用户无法访问您的非提升帐户的个人存储中的密钥。因此,只需将其添加到预构建或构建后并在提升下运行 Visual Studio 会导致构建时出现完全相同的 Keyset not found 错误。 ... 要使其正常工作,您需要script located at this gist。唯一的要求是您安装了 .Net Framework SDK 4.6、4.6.1 或 4.6.2。它使用它来获取 sn.exe 文件的路径,这样无论您的系统如何配置,它都能正常工作。

【讨论】:

    猜你喜欢
    • 2018-11-24
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多