我从Comodo CA获得了一个受信任的证书,并且很难让它使用InternalsVisibleTo属性。 我收到警告说组件无效且无法解决。 我使用X509Certificate.GetPublicKeyString()检索了公钥,并将其放入assemblyinfo。
[assembly:System.Runtime.CompilerServices.InternalsVisibleTo("Assemblyname,PublicKey=MyPublicKey"]
到目前为止,我们使用过不受信任的证书,它可以正常使用。我注意到,受信任证书(.pfx)的PublicKey长度为540个字符,而我们的不受信任(.snk)只有320个。
我的错误在哪里?
此外,我无法使用项目设置选择我的.pfx来签名。后期工作。当使用项目设置时,它告诉我它无法找到证书和私钥。
答案 0 :(得分:2)
如果不尝试自己做同样的事情,很难说出问题是什么。也许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,您将找到"公钥是"部分 - 从那里复制密钥并在InternalsVisibleTo
中使用。