当前位置:  开发笔记 > 编程语言 > 正文

无法将文件从obj\Debug复制到bin\Debug

如何解决《无法将文件从obj\Debug复制到bin\Debug》经验,为你挑选了7个好方法。

我在C#中有一个项目,每次尝试编译项目时都会出现此错误:

(无法将文件"obj\Debug\Project1.exe"复制到"bin\Debug\Project1.exe".进程无法访问文件'bin\Debug\Project1.exe',因为它正由另一个进程使用.)

...所以我必须从任务管理器关闭该过程.我的项目只有一种形式,没有多线程.

解决方案是什么(不重启VS或杀死进程)?

在此输入图像描述

这是我们的错误代码,我们如何才能解决这个问题?



1> user492238..:

@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


为我删除.suo文件是必要的

2> 小智..:

我也可以确认VS 2012 Update 2中存在此错误.

我的解决方法是:

    清洁解决方案(别无其他)

    关闭解决方案中的所有打开的文档/文件

    退出VS 2012

    运行VS 2012

    构建解决方案

我不知道这是否相关,但我的项目在其他项目的类文件中使用"Linked" - 它是一个Silverlight 5项目,并且共享一个兼容.NET和SL的类的唯一方法是链接文件.

需要考虑的事项......在单个解决方案中查找项目中的链接文件.



3> chaosifier..:

这应该工作.

转到您的项目属性.在构建事件内部,在预构建事件命令行下,添加以下两行代码:

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"



4> Jon Seigel..:

真正的问题不是你得到的错误; 这是应用程序不会自行清理.

它要么继续引用,要么不释放资源,要么在被告知关闭时导致进程无法结束.修复该问题,此问题将自行解决.除非你发布你的代码,否则我们无法真正帮助你(在这一点上,如果你需要帮助,你应该开始一个新的问题).


这是VS中一个已知(和讨厌)的错误.应用程序域卸载后,应立即强制卸载所有内容.所以这不是由应用引起的,而是由VS引起的.

5> 小智..:

如果您查看obj目录,但没有看到您的.exe,则可能是Avast!或其他防病毒软件正在删除它.我实际上会看到.exe显示然后消失.一旦我关闭Avast!,问题就解决了.

VS2010投掷"无法复制文件"obj\x86\Debug\[file] .exe"因为找不到它."



6> 小智..:

发生这种情况是因为[yourProjectName].exe在完成调试后进程没有关闭.

这个问题有两种解决方案.

    每次更改应用程序时,转到任务管理器 - >进程 - > [yourProjectName] .exe,结束此过程.每次更改系统时都必须结束此过程.

    在应用程序中添加退出按钮以退出窗口并将这些行添加到单击事件

    System.Diagnostics.Process.GetCurrentProcess().Kill();
    Application.Exit();
    



7> coggicc..:

我不得不进入Windows资源管理器并删除bin/debug文件夹以及obj/debug文件夹.然后我清理并重建了项目.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有