在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

(有时)有用,但这让我很紧张。有办法阻止这一切发生吗?

调试器设置为


当前回答

在我的例子中,VS不能复制的文件是. task项目的文件,所以问题是我有一些本地运行的计划任务。一旦我停止并禁用它们,复制问题就消失了。

其他回答

@Geoff (https://stackoverflow.com/a/25251766/3739540)的回答很好,但在重新编译时抛出错误代码1。

下面是对我有用的(2>nul 1>nul在结束+退出0):

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb) 2>nul 1>nul
(if exist "$(TargetDir)*old.dll" del "$(TargetDir)*old.dll") & (if exist "$(TargetDir)*.dll" ren "$(TargetDir)*.dll" *.old.dll) 2>nul 1>nul
exit 0

如果没有一个答案是正确的,试试这个简单的检查。 找到任何MSbuild.exe运行和持有您的项目EXE。杀死MSBuild.exe,你应该很好。

我通过在任务管理器中杀死IISExpress解决了这个问题

我不能给出一个解决方案来防止这种情况发生,但你至少可以重命名锁定文件(windows资源管理器,或经典命令窗口),然后编译/构建。不需要重启VS201x。如果有一些经验,你可以添加一个预构建脚本来删除旧文件或重命名,以防出现锁。

另一个拼凑,额,但它很容易,为我在VS 2013工作。单击项目。在属性面板中应该有一个名为Project File的条目,该条目带有一个值

(你的项目名).vbproj

更改项目名称—例如在末尾添加-01。被锁定的原始.zip文件仍然在那里,但不再被引用…这样你的工作才能继续。下次计算机重新启动时,锁将消失,您可以删除错误文件。