使用时
- DLL 上的 C# 强名称和
- 使用 InternalsVisibleTo 标签和
- 当公钥使用 SHA256(或 SHA512)时
我们注意到编译过程失败了,就好像InternalsVisibleTo
标签从未声明过一样。我们得到的错误是MyInternalClass is inaccessible due to its protection level <snip>
当公钥使用 sha1(在上面的第 3 步中)时,编译过程可以完美运行,没有任何问题,并且内部结构可以正确地暴露给测试项目。我们创建强名键的方式是
sn -k 4096 SignKey.snk
sn -p SignKey.snk SignKeyPublic.snk sha256
sn -tp SignKeyPublic.snk
我们将项目的内部结构暴露给它的测试项目的方式是:
[assembly: InternalsVisibleTo("MyProjectTest, PublicKey=LongPublicKeyHere")]
我们坚持在Properties\AssemblyInfo.cs
项目的内部MyProject
。
问题:如何在强名过程中使用 SHA256 或更好的?
编辑:或者这是 VS2012 工具中的错误?
平台、工具:VS2012(更新 3)、.NET 4.5、Windows 8 x64