我正在尝试使用InternalsVisibleTo程序集属性来使.NET类库中的内部类对我的单元测试项目可见。由于某些原因,我一直收到一条错误消息:
由于其保护级别,无法访问
'MyClassName‘
两个程序集都经过签名,并且我在属性声明中列出了正确的密钥。有什么想法吗?
发布于 2015-10-19 02:13:59
您需要为程序集生成新的完整公钥,然后指定程序集的属性。
[assembly: InternalsVisibleTo("assemblyname,
PublicKey="Full Public Key")]按照下面的MSDN步骤从visual studio中为程序集生成新的完整公钥。
将“获取程序集公钥”项添加到“工具”菜单的
在Visual Studio中,单击“工具”菜单上的“外部工具”。
在“外部工具”对话框中,单击“添加”,然后在“标题”框中输入“获取程序集公钥”。
浏览至sn.exe,填写命令框。它通常安装在以下位置:Microsoft:\Program Files (X86)\ SDKs\Windows\v7.0a\Bin\x64\sn.exe.
在参数框中,键入以下内容(区分大小写):-Tp $(TargetPath)。选中“使用输出窗口”复选框。
单击OK。新命令将添加到“工具”菜单中。
每当需要正在开发的程序集的公钥标记时,单击“工具”菜单上的“获取程序集公钥”命令,该公钥标记就会出现在“输出”窗口中。
https://stackoverflow.com/questions/106880
复制相似问题