c# - 受信任的 pfx 证书无法与 InternalsVisibleTo 属性一起使用

标签 c# pfx internalsvisibleto

我从 Comodo CA 获得了可信证书,但很难让它与 InternalsVisibleTo 属性一起使用。 我收到一条警告,指出程序集无效且无法解析。 我使用 X509Certificate.GetPublicKeyString() 检索了公钥并将其放入 assemblyinfo 中。

[assembly:System.Runtime.CompilerServices.InternalsVisibleTo("Assemblyname,PublicKey=MyPublicKey"]

到目前为止,我们使用了不受信任的证书,并且它可以正常工作。我注意到受信任的证书 (.pfx) 的公钥长度为 540 个字符,而我们的不受信任的 (.snk) 只有 320 个字符。

我的错误在哪里?

此外,我无法使用项目设置来选择我的 .pfx 进行签名。后期构建工作。使用项目设置时,它告诉我找不到证书和私钥。

最佳答案

如果我自己不尝试做同样的事情,很难说出问题是什么。也许X509Certificate.GetPublicKeyString()返回的公钥格式不是InternalsVisibleTo期望的格式。但是,您可以使用 sn(强名称工具),它的设计目的只是为了使用强名称键。

它位于C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin(SDK\系统驱动器等的数量可能有所不同,但你明白了)。

首先使用此命令导出公钥(如果 pfx 受密码保护,将要求输入密码):

sn -p YourComodoCert.pfx YourComodoCert.snk

然后通过以下方式将公钥导出为字符串:

sn -tp YourComodoCert.snk > YourComodoCert_pub.txt

使用文本编辑器打开 YourComodoCert_pub.txt,您将在其中找到“公钥是”部分 - 从那里复制 key 并在 InternalsVisibleTo 中使用。

关于c# - 受信任的 pfx 证书无法与 InternalsVisibleTo 属性一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37020281/

相关文章:

c# - 安装服务时如何注册事件日志并向其写入初始消息?

c# - 在给定 SecureString 密码的情况下,从 PFX 文件保存和加载 CngKey 的最简单方法是什么?

ssl - 从 GoDaddy 颁发的私钥和通配符证书创建 PFX 文件

c# - 为什么还对 InternalsVisibleTo 引用的程序集进行了签名?

c# - InternalsVisibleTo 属性问题

c# - 在 C# 中解析 JSON

c# - 如何在 App Center 的 Xamarin.Forms 中使用设置环境变量

c# - RSAParameters 到 pfx (X509Certificate2) 的转换

c# - 我如何访问 asp.net 5 中的内部结构

c# - ServiceStack.Redis 类型的客户端不保存值