错误“;无法复制文件,因为另一个进程正在使用该文件

本文关键字:文件 进程 另一个 错误 复制 因为 | 更新日期: 2023-09-27 18:28:11

我使用C#语言的windowsform应用程序,我有很多表单,当我想从一个表单遍历到另一个表单时,我使用this.Hide()

当我使用这种方法时,我收到显示的错误,

我知道解决方案是使用windows任务管理器结束流程,但问题是有什么方法可以在不导致此错误的情况下使用表单之间的旅行吗

 Error  9   Unable to copy file "obj'x86'Debug'WindowsFormsApplication1.exe" to "bin'Debug'WindowsFormsApplication1.exe". The process cannot access the file 'bin'Debug'WindowsFormsApplication1.exe' because it is being used by another process.  C:'Windows'Microsoft.NET'Framework'v4.0.30319'Microsoft.Common.targets  2868

错误“;无法复制文件,因为另一个进程正在使用该文件

简单的解决方案是在项目属性中添加一些代码。。

只需转到"项目"选项卡并选择项目属性。。从中选择"生成事件"选项卡。在预构建事件命令行中添加以下代码。。

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

尽管Hide()您的表单,但它们仍然是流程的一部分。如果你没有正确地关闭每个表单,流程将继续运行,你无法重新编译你的项目,最终你将不得不使用任务管理器终止你的流程
Visual Studio尝试重写您的可执行文件,如果可执行文件作为进程运行,Windows将拒绝写入您的.exe.

只需删除bin文件夹中的.exe文件:bin'Debug'WindowsFormsApplication1.exe

别担心,构建会创建一个新的。

我相信这是在编译应用程序或开始调试应用程序时发生的。

这可能是由于.

  1. 在VS中停止调试时,进程可能不会停止
  2. 您可能只是通过双击来执行应用程序
  3. 可能是由于权限问题。如果使用源代码管理,则在下载项目时,某些文件夹可能会被视为只读。所以你需要手动编辑
  4. 请确保使用Application.Exit()退出所有进程。http://msdn.microsoft.com/en-us/library/system.windows.forms.application.exit.aspx

我终于找到了修复方法。为什么我们不能在第一次调试后继续调试,因为第一个调试exe仍在运行。因此,在第一次调试之后,您需要转到任务管理器->进程选项卡->[您的项目名称exe]结束exe进程。

关闭visual studio在windows 7中单击Shift+Ctrl+esc在Tab进程中找到类似项目名称的流程并结束它。

我设法通过删除suo文件(隐藏的解决方案文件)来修复它。

简单的方法是从项目目录文件夹中删除.exe文件,然后重新构建项目。这将创建新的exe文件,问题将得到解决。

如果不能删除.exe文件,请尝试在任务管理器中搜索程序的进程