c#-无法将文件从obj \ Debug复制到bin \ Debug
我在C#中有一个项目,每次尝试编译该项目时都会收到此错误:
(无法将文件“ obj \ Debug \ Project1.exe”复制到“ bin \ Debug \ Project1.exe”。该进程无法访问文件“ bin \ Debug \ Project1.exe”,因为该文件正在被另一个进程使用。)
因此,我必须从任务管理器中关闭该过程。 我的项目只是一种形式,没有多线程。
解决方案是什么(不重新启动VS或终止进程)?
30个解决方案
27 votes
@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/恩/vs的bug/thread/CEA5哦4不2-5不33-453从-不反腐败-8大9发1啊1发4啊]
[HTTP://social.MSDN.Microsoft.com/forums/恩/VB IDE/thread/成都12发3从7-的96-4353-ADC E-23975哦30933发]
user492238 answered 2020-06-19T08:24:09Z
20 votes
这应该工作。
转到您的项目属性。在“构建事件”内部的“预构建事件”命令行下,添加以下两行代码:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
chaosifier answered 2020-06-19T08:24:33Z
19 votes
我可以确认此错误也存在于VS 2012 Update 2中。
我的解决方法是:
干净的解决方案(什么也不做)
关闭解决方案中的所有打开的文档/文件
退出VS 2012
运行VS 2012
建立解决方案
我不知道这是否相关,但是我的项目在其他项目的类文件中使用了“链接”-这是Silverlight 5项目,共享.NET和SL兼容类的唯一方法是链接 文件。
需要考虑的事情...在单个解决方案中寻找跨项目的链接文件。
Rob Ainscough answered 2020-06-19T08:25:28Z
9 votes
真正的问题不是您得到的错误;而是错误。 这是因为应用程序本身没有清除。
它要么坚持引用,不释放资源,要么其他原因导致进程在被告知关闭时无法结束。 解决该问题,此问题将自行解决。 除非您发布代码,否则我们无法真正为您提供帮助(此时,如果您需要帮助,则应该提出一个新问题)。
Jon Seigel answered 2020-06-19T08:25:53Z
9 votes
如果您在obj目录中查找,但看不到.exe,则可能是Avast! 或其他防病毒软件正在将其删除。 我实际上会看到.exe出现然后消失。 一旦我关闭Avast !,问题就解决了。
VS2010抛出“由于找不到文件,无法复制文件“ obj \ x86 \ Debug \ [file] .exe”。”
Bryan answered 2020-06-19T08:26:17Z
7 votes
发生这种情况是因为System.Diagnostics.Process.GetCurrentProcess().Kill();
Application.Exit();进程在完成调试后没有关闭。
有两个解决方案。
每次更改应用程序时,请转到任务管理器->进程-> [yourProjectName] .exe,结束此过程。 每次对系统进行更改时,都必须结束此过程。
在您的应用程序中添加退出按钮以退出窗口,并添加这些行以单击事件
System.Diagnostics.Process.GetCurrentProcess().Kill();
Application.Exit();
rajan answered 2020-06-19T08:26:55Z
5 votes
我必须进入Windows资源管理器并删除bin / debug文件夹以及obj / debug文件夹。 然后,我清理并重建了该项目。
coggicc answered 2020-06-19T08:27:15Z
3 votes
在Visual Studios 2012中看到类似的错误之后。 我发现转到项目的根文件夹并右键单击它时,我未选中“只读”,并且此错误消失了。 显然,TFS有时会使文件夹变为只读。 希望这对遇到类似问题的人有所帮助。 谢谢
answered 2020-06-19T08:27:36Z
3 votes
这是我在VS 2010和Win 7上发生的。案件 :
我无法使用“调试配置”管理器进行重建,但是可以使用“发布配置”管理器进行重建
我尝试过的
在控制面板上检查我的帐户类型-用户帐户->我的帐户是管理员
设置bin文件夹为非只读
在bin文件夹中向所有人添加安全性
停止iis服务器
停止防病毒,使用任务管理器和ProcessExplorer检查可笑的正在运行的程序
以管理员身份运行VS
如果所有方式仍然无法正常工作。
然后,尝试的最后一种方法:
封闭解决方案
关闭视觉工作室
启动-关闭
按电源按钮打开计算机
登录到具有用户类型管理员权限的帐户
重新打开解决方案
重建
这样工作。 所有人都称这种方式为“重置计算机”
Khaneddy2013 answered 2020-06-19T08:29:14Z
2 votes
关闭你的专案
删除bin文件夹
我发现它有效,:)
Novpiar Effendi answered 2020-06-19T08:29:42Z
2 votes
将程序集重命名为其他名称即可解决此问题。
Sofia Khwaja answered 2020-06-19T08:30:02Z
1 votes
如果其他建议对您不起作用,则此URL上提出的解决方案可以帮助我:[http://weblogs.asp.net/fmarguerie/archive/2009/01/29/life-changer-xaml-tip-for-visual-studio.aspx]
这个问题也与此问题有关:VS2012-打开Xaml文件时XDesProc挂起
由于某些原因,当我打开XAML文件然后进行构建时,使用主程序集的dll文件时XDesProc进程仍留在内存中
Kirill Chilingarashvili answered 2020-06-19T08:30:31Z
1 votes
在重新生成解决方案之前,请清除项目,停止IIS,然后打开“ bin”文件夹属性。 取消选中常规选项卡中的只读属性,然后重新生成。
Kadir Can answered 2020-06-19T08:30:51Z
1 votes
在阅读您的答案后,我遇到了同样的问题,转到Task Manager,并搜索app.exe,因为我认为它可能不会关闭。
找到并选择它,然后执行END TASK .my问题已解决。
Hamid Talebi answered 2020-06-19T08:31:16Z
1 votes
我发现结束所有msbuild.exe任务(在任务管理器中)解决了VS2012的问题。
mizzle answered 2020-06-19T08:31:37Z
0 votes
以Administrator运行Visual Studio
Alexander Trofimov answered 2020-06-19T08:31:57Z
0 votes
我们最近在VS 2012 Update 2的WinPhone 8项目中体验到了这一点。
莫名其妙的原因是使用元组类型。 删除使用元组的代码,问题就消失了。 重新添加代码返回的问题。
Seamus answered 2020-06-19T08:32:23Z
0 votes
这听起来很疯狂,每当我构建项目时,都会显示错误,并且avast防病毒软件会将其显示为恶意尝试,并且该项目无法运行。我只是禁用我的防病毒软件,然后再次构建我的解决方案,缺少的.EXE文件具有 已创建,并且项目已成功执行。
或者你可以尝试一下
Visual Studio构建失败:无法将exe文件从obj \ debug复制到bin \ debug
coolprarun answered 2020-06-19T08:32:53Z
0 votes
我通过杀死XDesProc来解决此问题,该文件在无法删除的DLL上具有句柄。
Charlie answered 2020-06-19T08:33:13Z
0 votes
好吧,我有同样的问题,我要解决的方法是停止并禁用Windows中的“应用程序体验”服务。
Kataku answered 2020-06-19T08:33:33Z
0 votes
不是您问题的直接答案。
下面列出了一种可能的情况-
如果您的应用程序处于调试过程中(例如通过“附加到进程”调试),则可能会出现此错误
LCJ answered 2020-06-19T08:34:02Z
0 votes
如果遇到此错误,可以按照以下步骤进行
结束explorer.exe任务
End the explorer.exe task
再次运行explorer.exe任务
zawhtut answered 2020-06-19T08:35:31Z
0 votes
对我来说是杀毒软件。 只需将Visual Studio项目或整个父文件夹添加到“防病毒”排除列表中,或者您也可以添加文件扩展名作为排除项,此方法在Visual Studio 2010/2012中对我有用
Alex answered 2020-06-19T08:35:51Z
0 votes
解决方案1:
关闭项目。
删除bin文件夹。
打开项目。
生成项目。
解决方案2:
在预构建事件中添加以下代码:
attrib -r $(OutDir)*..\* /s
此命令行代码将删除“ bin”文件夹的仅就绪属性。 现在,Visual Studio可以轻松删除和复制新的dll。
Rocky answered 2020-06-19T08:36:45Z
0 votes
多年来,我一直在为此奋斗。我终于下载了LockHunter,以找出谁锁定了该文件。以我为例,它是MBAM。将项目目录添加到MBAM排除列表后,我再也没有这个问题了。
tmighty answered 2020-06-19T08:37:05Z
0 votes
一个非常简单的解决方案是打开“任务管理器”(CTRL + ALT + DELETE),转到“进程”选项卡,并使用您的项目名称按名称搜索仍在运行的进程。 杀死所有进程并继续! :)
Dina Bogdan answered 2020-06-19T08:37:26Z
0 votes
经过一天的搜索,构建和重建,我发现您只需要关闭visual studio,就可以像在不同线程中捕获服务一样
moath naji answered 2020-06-19T08:37:46Z
0 votes
我的解决方法是:
清洁溶液
根据VS(当前实例)关闭所有进程。
重建
Esther Lalremruati answered 2020-06-19T08:38:18Z
0 votes
我的Visual Studio 2019突然停止并重新启动,然后在我运行项目时出现此错误。
我通过进入项目文件夹并删除bin和obj文件夹来解决此问题然后清理并重建我的项目。 这解决了我的问题。
mehmoodnisar125 answered 2020-06-19T08:38:43Z
0 votes
这个解决方案对我有用:转到构建->配置管理器->活动解决方案平台->选择x64(您可能必须创建新的),将平台设置为x64并关闭
Adi answered 2020-06-19T08:39:03Z
在C#项目中遇到编译错误,提示无法将文件从obj\Debug复制到bin\Debug,因为文件被其他进程占用。解决方案包括:关闭打开的Windows窗体设计器,删除.suo文件,预构建脚本删除或移动目标文件,关闭防病毒软件,确保项目无跨项目链接文件,检查文件夹权限和只读设置,以及结束占用进程等。

被折叠的 条评论
为什么被折叠?



