2009-11-30 174 views
25

使用Visual Studio 2010测试版,当我在IDE中运行我的应用程序进行调试时,它在第一次完美运行。然而,在关闭调试会话后,通过关闭应用程序或单击停止调试键后,所有后续尝试调试应用程序失败:当我在Visual Studio中调试时,为什么我会得到“文件被另一个进程使用”错误?

错误1无法复制文件“OBJ \调试\ Application.dll “ 到 ”bin \ Debug \ Application.dll“。 该进程无法访问文件 'bin \ Debug \ Application.dll' ,因为它正在被另一个 进程使用。

SysInternals的Handle.exe确实显示句柄打开,但即使关闭句柄,错误也不会消失。任何手动删除文件的尝试都会导致“访问被拒绝”错误消息。

要解决此问题,我必须完全重新启动Visual Studio,之后调试会话将工作一次并再次停止。

我不完全确定这是什么时候开始发生的,但我很确定它是最近的。

UPDATE:后我强迫关闭上Application.dll把手,我从VS以下错误:

错误1无法复制文件 “OBJ \调试\ Application.dll” 到 “bin \ Debug \ Application.dll”。 对用户映射的 部分打开的文件执行请求的操作不能为 。

什么是“用户映射部分”?

UPDATE 2:当我尝试调试时,在设计视图中打开表单时出现此问题。我打算再做一些故障排除,然后发布我的结果。

更新3:我想我已经缩小到一个窗体使用UserControl。

+1

您是否尝试过杀死Applocation.vshost.exe过程,而不是重新启动Visual Studio的? – Nestor 2009-11-30 06:11:57

+0

是的,它不能被杀死。该过程不会死,直到我关闭VS. – 2009-11-30 06:45:53

+1

“看起来,当我在设计视图中打开窗体时出现此问题”这对我来说是这样。我收到你的错误。当我关闭所有打开的XAML文件时,错误消失了。 – user2023861 2013-05-31 16:07:48

回答

11

说实话,你听起来像是VS2010中的一个bug。出于某种原因,调试器停止时它不会关闭打开的手柄。杀死VS进程会自动关闭这些句柄,允许您再次访问该文件。作为解决方法,您可以查看unlocker它是免费的,并且工作得非常好。我知道这不是一个好的答案,但它应该比重新启动VS更快。你也可以考虑发送一个错误报告...

编辑:解锁不工作在64位操作系统上,LockHunter虽然。

+29

等一下,Chris Thompson回答Chris Thompson?大声笑。 – 2009-11-30 06:16:35

+1

@Andy我知道,我做了双重拍摄;-) – 2009-11-30 06:17:38

+1

这是VS2010中确认的错误,应该在SP1中解决。 – 2010-09-21 23:40:37

2

我见过Windows索引服务造成这种情况。禁用它有帮助。病毒扫描程序也可能出错。 Mutliple Application.Close()调用也可能导致这种情况。

编辑:当然,因为它总是第一次工作,我想这些是不太可能的。

8

这是我如何解决这个问题

*我打开项目属性, *选择构建选项卡, *清除输出路径, *和打造专业化(这将创建在根文件夹中的DLL ) *回到输出路径并选择浏览(浏览到bin目录以进行调试/发布),然后瞧!

+2

Voila!为我工作,谢谢! – Dan 2012-11-13 20:40:09

+0

哇!你是男人! – Maciej 2016-09-29 09:19:20

+0

这已经在VS2015中重新浮出水面,这解决了我的问题。 – GibralterTop 2016-11-03 12:48:20

0

我遇到了同样的问题,在我的情况下,我有问题的文件在Visual Studio中打开。关闭所有文件帮助。

1

有同样的问题。下面的事情帮助

  1. 关闭所有设计文件,同时使用解锁

而且我的应用程序打开一个端口调试

  • 。调试异常时抛出并退出程序。在结束程序时,我关闭了该端口。这也有帮助。

    但绝对是VS2010的bug。

  • -1

    这太令人沮丧了。真正考虑转移到VS2013和VS2010充满了问题,MS似乎不在乎。我们中的一些人确实没有奢侈品来购买新软件,但看起来我必须忍耐。我在这个问题上持续了两个多星期。我已经清除了VS2010的任何设置,我可能使用devenv/Resetsettings,以管理员身份运行VS2010,但仍然会出现此问题。当MS说他们不能在实验室中重现这一点,因为他们有一个原始系统或只是放置烟幕。我真的用这个拉出我的头发。

    +0

    我感到你的痛苦! – 2015-01-15 03:50:39

    0

    我面临同样的错误,我被困在里面很多天。最后解决了这个问题。 我正在研究一个项目,其中添加了许多类库。我说这些库的参考我的主要项目,并错误地

    added reference to same project to itself. So when 
        I removed self reference, it worked. 
    
    4

    Error: Cannot access file bin/Debug/… because it is being used by another process answer by TarmoPikaro,有时Visual Studio中创建多个msbuild.exe鬼进程,构建之后持续。这些幽灵进程似乎正在导致文件锁定。

    解决方案1 ​​ - 杀鬼MSBuild.exe的

    杀害msbuild.exe的是一次性的解决方案,它需要每构建的基础工作要做。

    你可以杀死的过程如下mrtumnus

    的taskkill/F/IM MSBuild.exe

    解决方案2 - 禁用并行构建在Visual Studio

    可以一劳永逸禁用并行构建全部:

    工具>选项>项目和解决方案>构建和运行>“最大并行项目构建数量” - 默认情况下它的值为8,将其切换为1。

    当然builds现在有点慢,但里程可能会根据您的使用情况而有所不同。

    这与 Error: Cannot access file bin/Debug/... because it is being used by another process

    相关问题