构建错误:“该进程无法访问该文件,因为它正在被另一个进程使用”

Posted

技术标签:

【中文标题】构建错误:“该进程无法访问该文件,因为它正在被另一个进程使用”【英文标题】:Build error: "The process cannot access the file because it is being used by another process" 【发布时间】:2011-02-27 15:50:29 【问题描述】:

我有一个 C# webforms 应用程序,直到今天它一直运行良好。

今天突然,每次尝试运行应用程序时,都会出现文件锁定错误:

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

谷歌搜索错误并没有发现任何明显的问题,即 VS 认为文件已锁定。 绝对锁定文件的是 Visual Studio 本身,因为当我关闭 VS 并重新打开它时,项目执行良好 - 第一次。当我再次尝试运行它时,我得到了文件锁定错误。

每次我想运行应用程序时关闭 VS 并重新打开不是一个可行的解决方法!如何找出锁定文件的原因,并阻止它被锁定?

编辑:另一个有趣的发现:我什至不必运行该应用程序。只编译一次就会导致文件锁定;我不能连续编译两次!

此问题特定于我的解决方案中的一个项目。所有其他项目都可以正常工作,并且可以根据需要执行多次。只有这个项目自己被锁定了。

【问题讨论】:

你可以尝试杀死 vshost.exe 看看是否有帮助? @rene - 没有 vshost.exe 进程。他们在 VS 2010 中重命名了吗? [应用名称].vshost.exe @rene - 不,当前进程中没有显示该名称 @Shaul 您是否在表单中添加了自定义用户控件?在运行之前尝试关闭设计器:***.com/questions/2690119/… 【参考方案1】:

如果这是一个 SSIS 项目,则打开任务管理器并终止 DtsDebugHost.exe 的所有实例,这应该会释放锁定的文件。

【讨论】:

【参考方案2】:

我使用 Visual Studio Code 并收到此错误,因为开发服务器正在运行(我通过按 Ctrl + F5 运行开发服务器)。

因此,我只需单击停止标志将其停止,错误就消失了。

【讨论】:

【参考方案3】:

我在这个问题上挣扎了 5 天,可以通过事件查看器日志找到问题的根源; 端口 443,我试图访问的应用程序正在使用中,所以我不得不更改注册表设置;基本上,您将能够通过事件查看器中的错误日志找到问题的根源。

【讨论】:

【参考方案4】:

我认为大多数回答的人都有些无能为力,并且通过反复试验找到了解决方案。我最近也遇到了这个问题,并查看了该线程中的各种解决方案,但它们没有多大意义。我查看了我的项目的 makefile(它是由我的项目负责人手工制作的),我在那里找到了 -j11。我用 -j1 替换了它,它解决了这个问题。预感是 make 可能在运行多个作业(线程)方面做得不好,即当一个线程在处理一个文件时,另一个线程正在尝试使用它。

对于那些使用 IDE 编译代码的人,您需要寻找可以设置作业数量的构建属性,然后尝试在作业数量设置为 1 的情况下编译代码。您可能还必须关闭并重新启动 IDE(这完全取决于 IDE 的编程方式)。

我知道这可能会妨碍您构建的性能,但在修复此错误(如果有,我没有费心深入研究)或 makefile 生成器变得足够聪明之前,可能没有其他选择防止这种情况发生。

【讨论】:

【参考方案5】:

禁用我的防病毒软件简单地解决了问题。

我几乎尝试了这个问题的所有答案,但不幸的是,没有一个答案对我有用。 突然,我的防病毒软件进入了我的脑海,我将其禁用,一切正常。之后,我将项目的路径添加到忽略我的防病毒列表中。

【讨论】:

以上是关于构建错误:“该进程无法访问该文件,因为它正在被另一个进程使用”的主要内容,如果未能解决你的问题,请参考以下文章

部署错误。构建失败:构建错误详细信息不可用。 Firebase 云函数

尝试构建 Angular 构建时收到错误

代号一中的构建错误

构建 Flutter iOS 应用程序时如何解决“格式错误的项目”构建错误

在 iOS 中构建 Flutter 时出现构建错误

在 phonegap 构建中启动导航器插件构建错误