10

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

8 回答 8

12

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

只需转到项目选项卡并选择项目属性。从那里选择生成事件选项卡。并在 Pre-build event 命令行中添加以下代码..

   if exist "$(TargetPath).locked" del "$(TargetPath).locked"
   if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
于 2014-04-12T06:05:41.557 回答
8

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

于 2013-08-19T19:23:36.173 回答
5

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

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

于 2015-07-20T13:48:50.960 回答
3

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

这可能是由于。

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

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

于 2014-06-06T11:57:21.630 回答
1

在 Windows 7 中关闭 Visual Studio 单击选项卡进程中的 Shift + Ctrl + esc 找到类似项目名称的进程并结束它。

于 2015-10-22T10:56:56.607 回答
0

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

于 2014-03-10T08:14:17.143 回答
0

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

于 2017-10-17T09:47:24.840 回答