在VS2012 c#项目的构建过程中,我一直得到这个错误
Error 41 Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe".
Exceeded retry count of 10. Failed.
Error 42 Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file
'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another
process.
现在我知道该终止进程了
Weingartner.WeinCad.vhost.exe
(有时)有用,但这让我很紧张。有办法阻止这一切发生吗?
调试器设置为
在Visual Studio Premium 2013 (Update 3)中,我用一个预构建的一行程序解决了这个问题:
(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)
这将优雅地删除任何旧的PDB文件(如果可以的话),然后重命名任何带有.old的文件。pdb的扩展。一个很好的副作用是,如果旧的PDB仍然是锁定的,它只是在文件名中添加另一个.old块,并且在下次重新启动Visual Studio并进行构建时,它们都将被清除。
例如,构建/调试会话1离开MyProject。pdb锁定。
下次构建时:
MyProject的。MyProject.old.pdb
然后,构建/调试会话2启动,并且MyProject。pdb和MyProject.old.pdb仍然锁定:
MyProject.old.pdb—> MyProject.old.old.pdb
MyProject的。MyProject.old.pdb
最后,重新启动Visual Studio并进行一个新的构建将摆脱这两个问题,并像往常一样继续这个过程。
第一个消息错误解决方案:
在我的例子中,问题在于路径长度。
解决方案是减少/更改问题文件路径。如果问题出在项目中的文件上,你应该减少/更改存储库路径。
C:\Users\userTest\folder1\folder2\folder3\...\folderX\myProject\...\file.exe
如。
C:\Users\userTest\folder1\myProject\...\file.exe
换句话说,默认情况下路径长度不能超过260个字符。
原线程答案
(https://stackoverflow.com/a/73686473/12678101)
我已经添加了不同次相同的问题,从这个治疗没有一个答案可以帮助,或者如果他们这样做了,使用一个讨厌的工作。
我认为这个问题总是有一个很好的原因发生(不是微软的bug!)-好吧,不过VS在标记方面可以做得更好:-))。
主要原因可能只是你的项目依赖关系搞砸了!
作为一个简单的例子():
在同一个解决方案中有多个项目
你清理+构建所有,并假设一切都很顺利,因为你没有看到错误
您开始运行其中一个项目—到目前为止一切正常!
然后开始运行第二个项目,但这个项目也有前一个项目使用的依赖项,并尝试重新构建它们
然后挂一段时间
它无法在第一个项目已经运行时进行构建,并且不允许您覆盖正在进行的流程
现在,您可以想到所有可能触发此类错误的场景:
Error Could not copy "obj\Debug\ProjectX.exe" to "..\bin\Debug\ProjectX.exe". Exceeded retry count of 10. Failed. The file is locked by: "ProjectX (17132)" ProjectX
修复这个问题通常是一个乏味的过程,因为您必须完全理解系统中的所有依赖项