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

时间:2013-08-19 19:18:21

标签: c# winforms visual-studio-2010 forms

我使用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

8 个答案:

答案 0 :(得分:9)

简单易用的解决方案是在Project Properties中添加一些代码。

只需转到“项目”标签,然后选择项目属性即可。 从那里选择Build event选项卡。 在预构建事件命令行中添加以下代码..

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

答案 1 :(得分:7)

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

答案 2 :(得分:3)

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

答案 3 :(得分:3)

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

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

答案 4 :(得分:2)

我相信在您编译应用程序或开始调试应用程序时会发生这种情况。

这可能是由于。

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

答案 5 :(得分:1)

关闭视觉工作室 在Windows 7中 单击Shift + Ctrl + esc 在Tab进程中 找到类似项目名称的流程并结束它。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

简单方法是从项目目录文件夹中删除.exe文件并再次构建项目。这将创建新的exe文件,问题将解决。