2

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

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

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

我的错误在哪里?

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

4

1 回答 1

2

如果不尝试自己做同样的事情,很难说出问题所在。可能返回的公钥X509Certificate.GetPublicKeyString()格式不是InternalsVisibleTo预期的格式。但是,您可以使用sn(Strong Name Tool),该工具专为使用强名称键而设计。

它位于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.

于 2016-05-04T07:36:40.903 回答