为什么在Resharper/MSTest下调试时引用的dll被锁定?

Kit*_*Kit 4 debugging resharper unit-testing mstest visual-studio

我对汇编中的方法进行了集成测试A.大会A集的引用B通过项目引用.我在Resharper 6.1单元测试场景中的Visual Studio 2010调试器下运行它们.测试引擎是微软的原生MSTest.

我臭名昭着

该进程无法访问该文件,...\B.dll因为该文件正由另一个进程使用.

信息.我已经验证没有其他进程可以处理该文件(例如通过Sysinternal的Process Explorer).

从调试器运行测试工作正常.任何想法为什么它发生在调试器下,我可以做些什么来解决它?

小智 7

我见过类似的情况,并在任务管理器中发现vtest.discoveryengine.exe和vtest.executionengine.exe仍然存在.我杀了两个,这解决了问题.


mrt*_*nus 6

基于Sébastien的回答,我在我的测试项目中添加了一个预构建步骤,以自动杀死vstest.*仍在运行的任何可执行文件.以下预构建命令对我有用:

taskkill /f /im vstest.*
exit 0
Run Code Online (Sandbox Code Playgroud)

exit 0命令最后是为了防止在没有vstest.*可执行文件运行时出现构建失败.