Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Xamarin.ios InternalsVisibleTo是否允许MonoTouch单元测试访问MT库的内部?_Xamarin.ios_Internalsvisibleto_Touch.unit - Fatal编程技术网

Xamarin.ios InternalsVisibleTo是否允许MonoTouch单元测试访问MT库的内部?

Xamarin.ios InternalsVisibleTo是否允许MonoTouch单元测试访问MT库的内部?,xamarin.ios,internalsvisibleto,touch.unit,Xamarin.ios,Internalsvisibleto,Touch.unit,能否使用MonoTouch库的AssemblyInfo文件中的InternalsVisibleTo assembly属性来允许MonoTouch单元测试(Touch.Unit)访问MonoTouch库的内部 在非单触式环境中,这是一种非常好的方法,可以在不需要跳环的情况下测试内部构件。然而,我无法让它与单触式单元测试一起工作。因此,在我进一步讨论之前,我想我会问一下这是否可能,因为这是一个iOS应用程序,是测试运行程序,所以不确定编译为本机代码的iOS应用程序是否可以做到这一点。是的,它应该(或

能否使用MonoTouch库的AssemblyInfo文件中的InternalsVisibleTo assembly属性来允许MonoTouch单元测试(Touch.Unit)访问MonoTouch库的内部

在非单触式环境中,这是一种非常好的方法,可以在不需要跳环的情况下测试内部构件。然而,我无法让它与单触式单元测试一起工作。因此,在我进一步讨论之前,我想我会问一下这是否可能,因为这是一个iOS应用程序,是测试运行程序,所以不确定编译为本机代码的iOS应用程序是否可以做到这一点。

是的,它应该(或者它是一个bug),即使我不记得自己尝试过它

关键的一点是,
[InternalsVisibleTo]
主要是一种编译器技巧,它由MonoTouch附带的C#编译器(
smcs
)支持(因为它在BCL中使用)。因此,没有理由不在基于Touch.Unit的应用程序中工作


现在请记住,所有其他规则仍然适用。例如,如果在删除所有未使用的代码时启用托管链接器(即使标记了该属性)。

那么我的问题有两个:1)触摸。单元应用程序没有签名和强名称。我已将其设置为签名和强名称,但未使用该信息。2) Touch.Unit应用程序未获得程序集版本。它的版本始终为0.0.0.0,即使我有一个AssemblyInfo.cs声明它应该为1.0.0.0。我还尝试了所有3个链接行为,没有改变。我只是想先让它在模拟器中工作,然后再在硬件上尝试它。MD提供的错误消息是:错误CS0281:朋友访问被授予了“MonoTouchUnitTests,PublicKeyToken=0c7aa341ab3f9c12”,但输出程序集名为“MonoTouchUnitTests,Version=0.0.0,Culture=neutral,PublicKeyToken=null”。尝试添加对“MonoTouchUnitTests,PublicKeyToken=0c7aa341ab3f9c12”的引用,或更改输出程序集名称以匹配it@RodneyFoley这看起来像是构建问题——比可能影响Touch.Unit的运行时问题更早。请将您的解决方案附加到错误报告中,我们将对此进行查看(可能与配置有关,但可能工具隐藏了正确的选择)。我已在Xamarin论坛上发布了此内容,以下是解决方案。我也会写一个bug,谢谢。