在VS2008中好好的一个单元测试,运行却报了个“调用的目标发生了异常”,每次如此,重建解决方案也无效,关机重启也枉然。
如图:
几经折腾,我就纳闷了:刚才还好好的,现在怎就不行了呢?Google、百度几番下来,毫无收获!
莫非开发环境出问题了?重装念头一闪而过,但想想VS2008+Team Exploer+Sp1+TFS补丁,一路下来没个半天是搞不定的。
所以狠下心来再找,中文信息不好找,那就用英文吧,几经周折终于知道这个问题英文关键字为“Exception has been thrown by the target of an invocation.”(有必要装个英文版了)。
世界之大,无奇不有,答案找到了(开心中…)。想到可能还有和我一样遭遇的同行,现在总结出来,可能有人用得上!
解决方案1:
出处:
描述:
1. Close all the instances of Visual Studio.
2. Open a VS (Without opening the solution).
3. Go to Test -> Windows -> Test Results.
4. Now open the solution and vsmdi.
5. Tests would run as usual.
大致意思:
1. 关闭所有VS开发环境。
2. 打开一个VS ,不要打开任何工程。
3. 在菜单栏中选择[测试]->[窗体]->[测试结果]。
4. 再打开你的解决方案。
5. 测试可以正常运行。
结果:
通过这个方案应该有很多人解决了问题。但很不幸我的问题依然存在!
解决方案2:
出处:如上
描述:
In case you are using TFS (team foundation server), for some reason your solution went offline and when you make it go online again it will fix the issue.
1. Open your solution .
2. Right Click the solution and click "Go Online".
3. Re-run the test. By now that error message must have gone away.
大致意思:
使用TFS后,由于某些原因使得你的解决方案处于离线运行状态。如果你让它在线运行那么就能正常运行。步骤如下:
1. 打开解决方案。
2. 选中解决方案,右键,选“Go Online”。(因为没有在中文的IDE中看到这个项,所以也不好翻译,暂且当作“在线运行”吧)
3. 再运行测试,错误信息将不复存在。
结果:
事后证明,原因就是这样。但也很遗憾,我没有在我的IDE中找到“Go Online”这样的项,说白了我的工程只不过是简单样例,根本就没放到TFS中做源代码管理。
解决方案3:
出处:
描述:
Open Team Explorer and connect to your TFS server. Then try again.
大致意思:
打开团队资源管理器,连接上TFS,重试。
结果:
运行果然正常。
补充:
我的环境为:VS2008+Team Explorer + sp1+连接TFS201补充。团队资源管理器连接TFS2010。