我的工作由8个.NET项目的解决方案。 因为我在练TDD,我不得不经常重新编译我的解决方案。 最近我一直在获取有关在编译的时候每一秒时间以下错误:
错误2无法 “OBJ \调试\ Zeiterfassung.Tests.dll” 复制文件的 “bin \调试\ Zeiterfassung.Tests.dll”。 该进程无法访问该文件“本\调试\ Zeiterfassung.Tests.dll”,因为它正由另一个进程使用。
Zeiterfassung.Tests.dll是我的项目(这是单元测试项目)中的一个生成的dll。 它总是这个DLL不能被复制和导致错误。 其他一切工作的时间精细100%。
在约9/10的时候,我可以再次重新编译我的解决方案“解决”问题。 但是,当问题越来越实在不好,项目就不会成功我会不会经常和我必须重新启动IDE编译不管。
我用微软的handle.exe以确定哪些进程锁定的DLL,它是devenv.exe的。 我还试图删除用手DLL,它真的,直到我重新启动IDE不能被删除。
最后但并非最不重要,我尝试添加<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
我的项目的建议在另一个论坛,但这并没有帮助。
请帮忙! 这个问题真的开始我发疯。
编辑:我还想补充一点,我确信,当这个问题occurrs我的单元测试完成。 不过,该DLL保持锁定状态。 我通过ReSharper的单元测试Explorer中运行我的测试。
我以前也遇到了同样的问题。 Process Explorer的是能够删除处理。
最有可能的问题是一个线程问题。 你可能有这样的仍在执行的巡回线程,它具有参考.DLL。
这为我工作:1)项目(C之外创建新的文件夹:\调试); 2)右键点击你的项目并选择属性; 3)找到生成选项卡; 4)导航到构建标签(最后一个VS2010)输出部; 5)单击浏览按钮,并选择新的C:\调试的位置作为输出目录; 6)保存所有更改; 7)结构(F6);
Visual Studio中已经有一个或另一个这样的问题,因为1日这将是很好,给你一套简单的解决方案,总是工作的,但坦率地说,有时,它刚刚“绊倒自己的脚”。
在这种情况下,简单的解决方法是退出并重新启动。 即使是在关闭的解决方案,并重启可能不会帮助。
通过“ 我尝试添加忠于我的项目是在另一个论坛建议 ”你的意思是你创建了一个属性命名GenerateResourceNeverLockTypeAssemblies并将其设置为true的建议http://social.msdn.microsoft.com/Forums/en-US /的MSBuild /线程/ 6f76db9a-ea37-42b3-a016-571912c28032 ? 如果不尝试了这一点。
赛义德·易卜拉欣·哈希米
我的书: 里面的微软构建引擎:使用的MSBuild和团队基础生成
貌似错误消失(手指交叉...)后,我搬到我的测试项目,从库中检出了项目的早期版本,并取代所有代码文件与新版本。
我有一个类似的问题 。 我不知道一个很好的解决方案,但是,解决该问题的破解是添加杀死vstest.executionengine.exe一个预生成事件:
taskkill /F /IM vstest.executionengine.exe /FI "MEMUSAGE gt 1"
taskkill /F /IM vstest.executionengine.x86.exe /FI "MEMUSAGE gt 1"