我正在开发一个由 8 个 .NET 项目组成的解决方案。由于我正在练习 TDD,因此我必须经常重新编译我的解决方案。最近,我在尝试编译时每隔两次都会收到以下错误:
错误2 无法复制文件
“obj\Debug\Zeiterfassung.Tests.dll”到
“bin\Debug\Zeiterfassung.Tests.dll”。
该进程无法访问该文件
'bin\Debug\Zeiterfassung.Tests.dll'
因为它正在被另一个人使用
过程。
Zeiterfassung.Tests.dll 是我的一个项目(它是单元测试项目)生成的 dll。始终是这个 dll 无法复制并导致错误。其他一切都 100% 正常工作。
大约 9/10 次我可以通过再次重新编译我的解决方案来“解决”问题。但是,当问题变得非常严重时,无论我尝试多少次,项目都无法成功编译,并且必须重新启动 IDE。
我使用微软的handle.exe来确定哪个进程正在锁定DLL,它是devenv.exe。我也尝试过手动删除DLL,但确实无法删除,直到我重新启动IDE。
最后但并非最不重要的一点是,我尝试添加<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
按照另一个论坛的建议添加到我的项目,但这没有帮助。
请帮忙!这个问题真的开始让我抓狂了。
Edit:我还可以补充一点,当这个问题发生时,我确保我的单元测试已经完成。尽管如此,该 dll 仍保持锁定状态。我正在通过 Resharper 单元测试资源管理器运行我的测试。
我以前也遇到过同样的问题。流程浏览器 http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx能够删除句柄。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)