Visual Studio 2010:无法在调试时复制文件

| 一段时间以来,我一直遇到问题(我认为是因为我使用的是Visual Studio 2010)。当我尝试在Web应用程序上启动调试时,我从VS.net环境中随机得到此错误:   错误1无法将文件\“ obj \\ Debug \\ SolutionName.exe \”复制到\“ bin \\ Debug \\ SolutionName.exe \”。该进程无法访问文件\'bin \\ Debug \\ SolutionName.exe \',因为它正在被另一个进程使用。 消除此错误的唯一方法是重新启动Visual Studio(尽快将错误恢复为每天两次)。 在互联网上搜索了一下之后,我发现可以在此处添加预构建,MSDN Link 我发现的所有事情是在预构建事件中写下一些内容并进行一些文件处理……很好(它始终无法正常工作)。 问题1:有没有更简单的方法来解决此问题(并且无论如何!) 问题2:此问题的确切原因是什么?     
已邀请:
这与卷影复制有关。您可以在web.config中将其禁用:
hostingEnvironment shadowCopyBinAssemblies=\"false\"
如果上述设置对预构建事件完全无效,那么您也可以使用一种解决方法:
if exist \"$(TargetPath).locked.bak\" del \"$(TargetPath).locked.bak\"
if exist \"$(TargetPath).bak\" del \"$(TargetPath).bak\"
if exist \"$(TargetPath).locked\" ren \"$(TargetPath).locked\" \"$(TargetPath).locked.bak\"
if exist \"$(TargetPath)\" ren \"$(TargetPath)\" \"$(TargetPath).bak\"
您可以在Windows中完全禁用ShadowCopy服务,这样就不必为所有解决方案设置这些值,但这会破坏很多功能,因此我不建议这样做。 您始终可以使用自定义批处理脚本来调用最后一个项目的postbuild事件(按照构建顺序),该事件将完成所有复制业务(我现在使用)。     

要回复问题请先登录注册