我在C#中有一个项目,每次尝试编译项目时都会出现此错误:
(无法将文件"obj\Debug\Project1.exe"复制到"bin\Debug\Project1.exe".进程无法访问文件'bin\Debug\Project1.exe',因为它正由另一个进程使用.)
...所以我必须从任务管理器关闭该过程.我的项目只有一种形式,没有多线程.
解决方案是什么(不重启VS或杀死进程)?
这是我们的错误代码,我们如何才能解决这个问题?
@Udpate:自从我第一次发布这个"答案"以来,我倾向于对问题进行另一种解释.从那时起,问题也越来越多地发生在Visual Studio之外 - 同时尝试将.exe文件从一个文件夹复制到另一个文件夹.虽然Windows首先不允许复制(!)一个.exe文件(它首先要求我提供管理权限,但无论如何都拒绝复制它)它仍然出现在资源管理器中.但过了一段时间 - 没有采取任何进一步的行动,它神奇地消失了.就像问题中的问题似乎总是在一段时间后解决.所以我假设,问题更多的是延迟删除项目输出文件而不是错误的VS. 我为任何不合理的怀疑道歉.:|
我想,这样就可以找到一个完全不同方向的解决方案.找到该链接并将更新任何进度:
https://superuser.com/questions/234569/windows-7-delayed-file-delete
================================================== ======================
这是VS中的已知错误.我经常发现它 - 主要是在VS2010中(有/没有SP1).建议使用几种"解决方案".其中一些,对我有所帮助:
删除项目目录中的.suo文件.最终需要从头开始创建整个解决方案.
关闭所有Windows窗体设计器可能仍保持打开状态.
使用预构建脚本,该脚本从输出目录中删除目标.
禁用VS主机进程.
这些都没有真正解决这个问题.但它可能会使VS恢复到可用状态 - 直到MS提供真正的解决方案(如果有的话).
http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/cea5e4b2-5b33-453c-bffb-8da9f1a1fa4a
http://social.msdn.microsoft.com/Forums/en/vbide/thread/cd12f3c7-de96-4353-adce-23975e30933f
我也可以确认VS 2012 Update 2中存在此错误.
我的解决方法是:
清洁解决方案(别无其他)
关闭解决方案中的所有打开的文档/文件
退出VS 2012
运行VS 2012
构建解决方案
我不知道这是否相关,但我的项目在其他项目的类文件中使用"Linked" - 它是一个Silverlight 5项目,并且共享一个兼容.NET和SL的类的唯一方法是链接文件.
需要考虑的事项......在单个解决方案中查找项目中的链接文件.
转到您的项目属性.在构建事件内部,在预构建事件命令行下,添加以下两行代码:
if exist "$(TargetPath).locked" del "$(TargetPath).locked" if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
真正的问题不是你得到的错误; 这是应用程序不会自行清理.
它要么继续引用,要么不释放资源,要么在被告知关闭时导致进程无法结束.修复该问题,此问题将自行解决.除非你发布你的代码,否则我们无法真正帮助你(在这一点上,如果你需要帮助,你应该开始一个新的问题).
如果您查看obj目录,但没有看到您的.exe,则可能是Avast!或其他防病毒软件正在删除它.我实际上会看到.exe显示然后消失.一旦我关闭Avast!,问题就解决了.
VS2010投掷"无法复制文件"obj\x86\Debug\[file] .exe"因为找不到它."
发生这种情况是因为[yourProjectName].exe
在完成调试后进程没有关闭.
这个问题有两种解决方案.
每次更改应用程序时,转到任务管理器 - >进程 - > [yourProjectName] .exe,结束此过程.每次更改系统时都必须结束此过程.
在应用程序中添加退出按钮以退出窗口并将这些行添加到单击事件
System.Diagnostics.Process.GetCurrentProcess().Kill(); Application.Exit();
我不得不进入Windows资源管理器并删除bin/debug文件夹以及obj/debug文件夹.然后我清理并重建了项目.