我正在启动一个在多个VS项目中分解的项目,我正计划为每个项目分别进行测试项目,所以我有一个这样的解决方案:
我想测试一些internal
个类。所以我使用Visual Studio 2008(SP1)在我的测试项目中生成测试存根,并添加了InternalsVisibleTo
。但是我在内部课堂下得到一条红色的波浪线。如果我编译我得到一个成功的构建,并看着测试方法,红色的波浪线已经消失。
但是,如果我对文件进行强制操作,那么曲线会回来,而我内部课堂上没有智能感知。
internal
在Project1中,测试在Project1.Test中。为了完整起见,我决定采用与生成测试方法完全相同的方式,但这一次进入Project2.Test,这次它显示完全正常。我没有得到红色的波浪,我得到智能,一切。
我尝试删除Project1.Test并重新创建测试方法,我能想到的一切,但无论我做什么,都无法让内部在其配对中完全可见测试项目,仅在设计的项目中用于另一个项目。
这是我的坚果,它不起作用!
答案 0 :(得分:2)
你可以在InternalsVisibleTo属性中使用字符串常量或除了精确的文字搅拌(没有连接)之外的其他东西吗?我们习惯使用字符串常量来定义它,除了intellisense之外的所有内容都可以正常工作。通过粘贴替换为简单的字符串,它可以正常工作。
删除.suo文件(与解决方案文件相同的文件夹)也可能有所帮助。
答案 1 :(得分:1)
我也看过这个,特别是在使用强名时。说实话,我没有兴奋;只要它编译和测试正确,我就可以忍受奇怪的故障。例如,如果你遇到一个构建问题,我看到它抱怨它找不到其他(内部)方法 - 但是一个干净的构建没有显示任何错误。再说一次,我不要为此烦恼......(也许我太宽容了?)。
特别是,我只需很少我需要在测试中使用内部类型/成员(大多数时候我会尝试通过公共API进行测试);因此缺乏100%可靠的智能感知通常不是一个大问题。我已经知道我正在寻找的类型/成员(复制/粘贴;-p)。
当然,如果它被修复会很好,但如果我是预算经理,我可能会接受它,并首先关注其他功能。
答案 2 :(得分:0)
智能感知数据库文件可能存在问题。尝试删除它并让VS尝试重建数据库。
要执行此操作,请关闭解决方案并删除(所有?)。ncb文件。为了安全起见,只需将它们重命名为.nc4等等。重新打开解决方案并重建它。如果有效,请告诉我。
编辑:显然,ncb文件仅适用于C ++项目。我不知道C#项目的IntelliSense数据库在哪里,我也不知道。如果我是你,我仍然会尝试找到重置数据库的方法。
阿萨夫