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

x8goxv8g  于 2023-04-12  发布在  其他
关注(0)|答案(9)|浏览(524)

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

kkih6yb81#

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

7tofc5zh

7tofc5zh2#

只需删除bin文件夹中的.exe文件:bin\Debug\WindowsFormsApplication1.exe
别担心,构建会创建一个新的。

0kjbasz6

0kjbasz63#

我相信这是在编译应用程序或开始调试应用程序时发生的。
这可能是由于。
1.在VS中停止调试时,进程可能不会停止。
1.可能是你刚刚执行的应用程序,通过双击它.
1.可能是由于权限的问题。如果您使用源代码管理,在下载项目时,某些文件夹可能会被视为只读。因此您需要手动编辑。
1.确保您使用了Application.Exit()退出所有进程。http://msdn.microsoft.com/en-us/library/system.windows.forms.application.exit.aspx

gcmastyq

gcmastyq4#

我终于解决了这个问题。为什么我们不能在第一次调试后继续调试,因为第一次调试的exe仍然在运行。所以,在第一次调试后,你需要去任务管理器-〉进程选项卡-〉[你的项目名称exe]结束exe进程。

fhg3lkii

fhg3lkii5#

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

nfzehxib

nfzehxib6#

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

pepwfjgg

pepwfjgg7#

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

mrwjdhj3

mrwjdhj38#

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

3pvhb19x

3pvhb19x9#

简单的解决方案是在项目属性中添加一些代码。
只需转到项目选项卡并选择项目属性。从那里选择构建事件选项卡。并在预构建事件命令行中添加以下代码。

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

相关问题