Visual studio 错误:无法访问文件bin/Debug/。。。因为它正被另一个进程使用

Visual studio 错误:无法访问文件bin/Debug/。。。因为它正被另一个进程使用,visual-studio,debugging,projects-and-solutions,locked-files,Visual Studio,Debugging,Projects And Solutions,Locked Files,调试项目时,出现以下错误: 无法将文件“obj\Debug\My Dream.exe”复制到“bin\Debug\My Dream.exe”。进程无法访问文件“bin\Debug\My Dream.exe”,因为另一进程正在使用该文件 使用Process Explorer,我看到MyApplication.exe已退出,但系统进程仍在使用它,尽管我之前已停止调试。 每当我更改代码并开始调试时,它都会发生。若我将项目复制到USB并调试,它运行正常 为什么??如何修复此错误 我使用Windows7专

调试项目时,出现以下错误:

无法将文件“obj\Debug\My Dream.exe”复制到“bin\Debug\My Dream.exe”。进程无法访问文件“bin\Debug\My Dream.exe”,因为另一进程正在使用该文件

使用Process Explorer,我看到MyApplication.exe已退出,但系统进程仍在使用它,尽管我之前已停止调试。 每当我更改代码并开始调试时,它都会发生。若我将项目复制到USB并调试,它运行正常

为什么??如何修复此错误


我使用Windows7专业版。对于Xp,我从来没有遇到过这个错误。

呃,这是一个老问题,在VisualStudio中偶尔会出现这种情况。它咬了我好几次,我已经浪费了几个小时重新启动和与VS战斗。我相信这里已经讨论过不止一次了。MSDN论坛上也讨论过这个问题。没有一个实际的解决方案,但有两个变通办法

发生的情况是VS获取了一个文件的锁,然后没有释放它。具有讽刺意味的是,该锁阻止VS本身删除该文件,以便在重建应用程序时可以重新创建该文件。唯一明显的解决方案是关闭并重新启动VS,以便释放对文件的锁定

我最初的解决方法是打开bin/Debug文件夹并重命名可执行文件。如果它已锁定,则无法删除它,但可以重命名它。因此,您只需在末尾添加一个数字或其他内容,这样您就可以继续工作,而无需关闭所有窗口并等待VS重新启动。将随机字符串附加到旧输出文件名的末尾。是的,这是一个巨大的黑客,但这个问题变得如此令人沮丧和衰弱,你会做任何事情

我后来了解到,经过更多的实验,这个问题似乎只有在你构建一个开放的设计项目时才会出现。因此,长期以来对我有效并阻止我再次处理这些愚蠢错误的解决方案是确保在构建WinForms项目之前始终关闭所有设计器窗口。是的,这也有点不方便,但它确实可以让你在每小时两次或更多的时候重新启动VS

我假设这也适用于WPF,尽管我没有使用它,也没有亲身经历过这个问题

我还没有尝试在VS 2012 RC上复制它。我不知道是否已经在那里修好了。但到目前为止,我的经验是,即使微软声称已经修复了它,它仍然能够弹出。它仍然在VS2010SP1中。当然,我并不是说他们的程序员是不知道自己在做什么的白痴。我认为导致该缺陷的原因有很多,而且/或者很难在实验室中可靠地复制。这也是我没有亲自提交任何关于它的bug报告的原因(尽管我已经对其他人进行了+1’测试),因为我似乎无法可靠地复制它,就像讨厌的雪人一样

计算机(右键单击)->管理->服务和应用程序->服务->启用应用程序体验


为我工作

这纯粹是猜测,不是答案

然而,我有这个问题已经有一段时间了

我在一段时间后怀疑VS和我的AV预防措施之间存在交互作用

玩了一段时间后,当我修改了我的防病毒程序,使所有的东西都在

C:\Users[username]\AppData\Local\Microsoft\VisualStudio\10.0\ProjectAssemblies

文件夹未包含在实时保护中


看起来好像构建实际上首先在这里写入DLL,然后将其复制到最终构建位置

最近,我在Visual Studio 2012中遇到了一个问题,出现了相同的错误描述:“该进程无法访问该文件,因为它正被另一个进程使用…”

要解决这一问题,首先需要了解仍在使用它的应用程序。我已关闭所有进程,如“MSBuild”和“MSBuild host”。但这还不够。如果您已安装“代码契约”并已打开,则有时需要您的DLL来检查和挂断此操作

因此,您需要停止“CCCheck.exe”的所有进程,仅此而已


最后,为了了解进程正在使用DLL,您可以始终尝试删除文件管理器中的“obj”文件夹,但此操作将失败,您可能会看到“消息窗口”以及挂起操作的说明。另外,作为一种变体,您可以尝试使用“sysinternalsuite”应用程序。

我以前遇到过这个错误,即使是在VisualStudio2008中。它在VisualStudio2012中再次流行起来

这就是我要做的

将其粘贴到有问题的项目的预构建事件中:

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

可能太晚了。但是,我遇到了类似的问题,在我的情况下,项目有自我参考。因此,从参考资料中删除它就像一种魅力

另一个难题,呃,但这很简单,在VS 2013中对我有效。点击项目。在“属性”面板中,应该有一个名为“项目文件”的条目,其值为

(您的项目名称).vbproj

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

对我有用。 任务管理器->项目名称->结束任务。(我有3个与我的项目名称相同的流程)

与2013年相比;赢得8分

如果在运行单元测试时遇到此问题,请查看我的答案。答复如下:

基于塞巴斯蒂安的回答,我在测试中添加了一个预构建步骤 自动杀死任何
vst的项目
taskkill /f /im vstest.*
exit 0
(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)
    Form1 form = new Form1();
    form.Close();