受信任的 pfx 证书不适用于 InternalsVisibleTo 属性

Trusted pfx cert not working with InternalsVisibleTo attribute

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

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

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

我的错误在哪里?

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

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

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

首先使用此命令导出 public 密钥(如果 pfx 受密码保护,将询问密码):

sn -p YourComodoCert.pfx YourComodoCert.snk

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

sn -tp YourComodoCert.snk > YourComodoCert_pub.txt

用文本编辑器打开 YourComodoCert_pub.txt,在那里你会找到 "Public key is" 部分 - 从那里复制密钥并在 InternalsVisibleTo.

中使用