代码之家  ›  专栏  ›  技术社区  ›  Chris Thompson

在VisualStudio中调试时,为什么会出现“文件被另一个进程使用”错误?

  •  29
  • Chris Thompson  · 技术社区  · 16 年前

    错误1无法复制文件“obj\Debug\Application.dll” 到 “bin\Debug\Application.dll”。 'bin\Debug\Application.dll' 因为它正被另一个人使用

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

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

    :在我强制关闭Application.dll上的句柄后,我从VS获得以下错误:

    错误1无法复制文件 “obj\Debug\Application.dll” 到 “bin\Debug\Application.dll”。 部分打开。

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

    :尝试调试时,当我在设计视图中打开一个窗体时,似乎会出现此问题。我将进行更多的故障排除,然后发布我的结果。

    :我想我已经把它缩小到使用UserControl的窗体。

    7 回复  |  直到 16 年前
        1
  •  14
  •   BartoszKP    7 年前

    unlocker 它是免费的,工作异常出色。我知道这不是一个很好的答案,但是它应该比重新启动更快,你可能会考虑发送错误报告太…

    解锁器在64位操作系统上不工作, LockHunter 尽管如此。

        2
  •  9
  •   Sean Kendle    11 年前

    *我打开项目属性, *选择“生成”选项卡, *清除输出路径, *和buid(这将在根文件夹中创建dll) *返回到输出路径并选择browse(浏览到bin目录以进行调试/发布)和voila!

        3
  •  7
  •   Community Mohan Dere    6 年前

    根据 Error: Cannot access file bin/Debug/… because it is being used by another process answer by TarmoPikaro ,有时Visual Studio会创建多个msbuild.exe重影进程,这些进程会在生成后保留。这些重影进程似乎导致了文件锁定。

    解决方案1-杀死ghost MSBuild.exe

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

    您可以按如下方式终止进程 mrtumnus :

    taskkill/f/im MSBuild.exe

    解决方案2-在Visual Studio中禁用并行生成

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

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

        4
  •  3
  •   BartoszKP    7 年前

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

    当然,由于它总是第一次起作用,我想这是不可能的。

        5
  •  2
  •   Drishti    12 年前

    1. 调试时关闭所有设计文件
    2. 使用解锁器

    但绝对是VS2010的缺陷。

        6
  •  1
  •   Juha Palomäki    13 年前

    我遇到了同样的问题,在我的例子中,我在VisualStudio中打开了有问题的文件。关闭所有文件有帮助。

        7
  •  0
  •   BartoszKP    7 年前

    我正在做一个项目,其中添加了许多类库。我将这些库的引用添加到了我的主项目中,并错误地将对同一项目的引用添加到了自身中。因此,当我删除自我参照时,它起了作用。

        8
  •  0
  •   raging_river    6 年前

    我自己也有这个问题。我打开了“项目属性”窗口,这显然创建了一个文件锁。即使在我关闭窗口后,文件锁仍然存在,我必须重新启动VS。

    还有,我用的是

        9
  •  0
  •   Semih Can Bilgen    5 年前

    点击终端屏幕,使用“Ctrl+C”停止运行。