错误:无法访问文件bin/Debug/...因为它正由另一个进程使用

Trầ*_*inh 106 debugging projects-and-solutions locked-files visual-studio

当我调试我的项目时,我收到以下错误:

"无法将文件"obj\Debug\My Dream.exe"复制到"bin\Debug\My Dream.exe".进程无法访问文件'bin\Debug\My Dream.exe',因为它正被另一个人使用处理."

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

为什么?我该如何解决这个错误?

我使用Window 7 Professional.使用Xp我从未遇到过这个错误.

Cod*_*ray 112

呃,这是一个老问题,偶尔会出现在Visual Studio中.它被我咬了几次而且我已经失去了几小时重新启动并与VS战斗.我相信这里已经不止一次地讨论了这个问题.它也在MSDN论坛上被讨论过.没有实际的解决方案,但有几种解决方法.开始在这里研究.

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

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

经过一些实验,我后来才知道,当你打开一个设计师的时候,这个问题似乎只会出现.所以,对我来说长期工作并且阻止我再次处理其中一个愚蠢错误的解决方案是确保在构建WinForms项目之前我总是关闭所有设计器窗口.是的,这也有点不方便,但它确实胜过必须重启VS一小时或更长时间的裤子.

我认为这也适用于WPF,虽然我没有使用它并且没有亲身经历过那里的问题.

我还没有尝试在VS 2012 RC上再现它.我不知道它是否已在那里修复过.但到目前为止,我的经验是,即使在微软声称修复它之后,它仍然可以弹出.它仍然存在于VS 2010 SP1中.我不是说他们的程序员是白痴,他们当然不知道他们在做什么.我认为这个bug只有多种原因和/或在实验室中很难可靠地再现.这就是我没有亲自提交过任何错误报告的原因(虽然我已经和其他人一样),因为我似乎无法可靠地再现它,就像可恶的雪人一样.

<特定于任何人的咆哮>

  • 它发生在Visual Studio 17中,重新启动Visual Studio并没有帮助. (13认同)
  • VS 2015,我仍然有这个问题. (8认同)
  • 自从我昨天升级到vS 2013以来,这开始发生在我身上......自从VS 2008以来,这一切都没有发生在我身上......太可悲了. (2认同)
  • @jairhumberto 无缘无故,计算机已经足够令人沮丧了,无需将其传递给其他人..但这对我来说适用于这个特定问题,也许你有一些不同的东西!参见:/sf/answers/1375431011/ (2认同)

Sco*_*ttN 59

我之前就已经出现了这个错误,即使在Visual Studio 2008中也是如此.它在Visual Studio 2012中更为流行.

这就是我的工作.

将其粘贴在麻烦的项目的预构建事件中:

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
Run Code Online (Sandbox Code Playgroud)

  • @qwerty它可以在Build Events部分的项目属性中找到,或者如果您在VB.net项目中,在Compile部分下,您将看到Build Events按钮. (2认同)

小智 21

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

为我工作!

  • 我有这项服务正在运行但仍然遇到锁定问题. (10认同)
  • 在Windows 10中找不到服务 (7认同)
  • 几个月前我禁用了这项服务.现在启用它似乎解决了Visual Studio中的问题(由于exe文件被锁定而无法复制).我想知道为什么这项服务需要运行,我读到的内容似乎与此错误无关(例如http://www.blackviper.com/windows-services/application-experience/). (2认同)

lki*_*sac 13

我在Visual Studio 2013中遇到了同样的问题.我不确定是什么原因导致我的项目,但我能够通过清理解决方案并重建它来解决它.

  1. 构建>清洁解决方案
  2. 构建>重建解决方案

  • 重新打开Visual Studio也可以解决。 (2认同)

Tar*_*aro 7

至少在我的情况下,我注意到visual studio 2012创建了至少两个msbuild.exe鬼进程,这些进程在构建后没有消亡.这些僵尸显然导致文件锁出现.

杀死msbuild.exe是一次性解决方案,需要在每个构建的基础上完成.

但后来我发现我可以一劳永逸地禁用并行构建 - 进入工具>选项>项目和解决方案>构建和运行>"最大并行项目构建数" - 默认情况下它的值为8,我已经切换到1.像魅力一样工作.

当然构建现在有点慢,但比抱歉更安全.至少对于这个特殊的小项目,我不需要多个构建线程.


Sib*_*enu 6

我知道这是一个老问题。不幸的是,我.net core 2.0在的应用程序遇到了同样的问题visual studio 2017。因此,我想分享对我有用的解决方案。在此解决方案之前,我尝试了以下步骤。

  1. 重新启动Visual Studio
  2. 关闭所有申请
  3. 清理我的解决方案并重建

上述步骤均不能解决问题。

然后打开我Task Manager选择的dotnet进程,然后单击“结束任务”按钮。后来我打开了Visual Studio,一切正常。

在此处输入图片说明