我从 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/