Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带签名组件的c#单元测试_C#_Unit Testing - Fatal编程技术网

带签名组件的c#单元测试

带签名组件的c#单元测试,c#,unit-testing,C#,Unit Testing,我对创建的单元测试有问题。我有两个项目。一个是“真实”项目,另一个是单元测试项目。在我点击真实项目中的一个方法并选择“创建单元测试”之后。然后我得到了testproject中单元测试的代码 现在,在编译之后,我收到以下错误消息: 好友程序集引用“ASSEMBLYNAME”无效。强名称签名的程序集必须在其InternalsVisibleTo声明中指定公钥 然后,我在实际项目的AssemblyInfo.cs中的InternalsVisibleTo声明中添加了一个公钥。但是现在我得到了一个编译错误,在

我对创建的单元测试有问题。我有两个项目。一个是“真实”项目,另一个是单元测试项目。在我点击真实项目中的一个方法并选择“创建单元测试”之后。然后我得到了testproject中单元测试的代码

现在,在编译之后,我收到以下错误消息:

好友程序集引用“ASSEMBLYNAME”无效。强名称签名的程序集必须在其InternalsVisibleTo声明中指定公钥

然后,我在实际项目的AssemblyInfo.cs中的InternalsVisibleTo声明中添加了一个公钥。但是现在我得到了一个编译错误,在实际项目中的每个类都是内部的和密封的。信息是:

“CLASSNAME”由于其保护级别而不可访问


我能做些什么来解决这个问题?有什么想法吗?

是的,我添加了公钥令牌。如下所示:

[assembly: InternalsVisibleTo("NAMESPACE, PublicKey=00240000048000009 40000000602000000240000525341310004000001000100354f0966de4a992baa1ed0f2 faf643f86fd2c74aee8b9dc6c0321f9d658166658ec154aaed70ab4b92a21a3c1e7e53 200232043c0d0b791496fd0201d21f18433ee9507022f2a72829d1dd32b106f86c68e 620d2a39f02f3a8b82aa23196ef7f7f4880020dd340dd2dfecdd1b3051b1e659c9e18c 8e21cc90bc33de306712b86")]

输入程序集的名称,然后输入逗号和公钥。在将公钥粘贴到AssemblyInfo文件时,请记住删除公钥中的任何换行符等

[assembly: InternalsVisibleTo("AssemblyName, PublicKey=xxx")]

您的测试是否在同一命名空间/程序集中?否。命名空间不同。“内部”说明符表示访问限制在同一程序集中,因此如果您的测试在不同的程序集中,您可能会看到这个错误在这个问题中可能会找到一个潜在的答案,但因此我在实际项目的AsseblyInfo.cs中添加了InternalsVisibleTo声明。msdn说这应该有效…通过“名称空间”,您实际上是指程序集名称吗?如果不是,那可能是你的问题。对不起。我指的是AssemblyName,而不是InternalsVisibleTo中的命名空间