C# 无法将文件从obj\Debug复制到bin\Debug
我有一个C#版本的项目,每次我试图编译该项目时都会出现以下错误: (无法将文件“obj\Debug\Project1.exe”复制到“bin\Debug\Project1.exe”。进程无法访问文件“bin\Debug\Project1.exe”,因为其他进程正在使用该文件。) 因此,我必须从任务管理器关闭流程。我的项目只有一种形式,没有多线程 解决方案是什么(不重新启动VS或终止流程)C# 无法将文件从obj\Debug复制到bin\Debug,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我有一个C#版本的项目,每次我试图编译该项目时都会出现以下错误: (无法将文件“obj\Debug\Project1.exe”复制到“bin\Debug\Project1.exe”。进程无法访问文件“bin\Debug\Project1.exe”,因为其他进程正在使用该文件。) 因此,我必须从任务管理器关闭流程。我的项目只有一种形式,没有多线程 解决方案是什么(不重新启动VS或终止流程) 真正的问题不是你所犯的错误;这是因为应用程序本身没有清理 它要么保留引用,而不是释放资源,要么在被告知关闭时
真正的问题不是你所犯的错误;这是因为应用程序本身没有清理
它要么保留引用,而不是释放资源,要么在被告知关闭时导致进程无法结束。解决这个问题,这个问题就会自行解决。除非你发布你的代码,否则我们无法真正帮助你(此时,如果你需要帮助,你应该开始一个新问题)。@Udpate:自从我第一次发布这个“答案”以来,我倾向于对这个问题进行另一种解释。在尝试将.exe文件从一个文件夹复制到另一个文件夹时,该问题也越来越多地发生在Visual Studio之外。虽然Windows最初不允许复制(!)一个.exe文件(它最初向我请求管理权限,但后来拒绝复制),但它仍然显示在资源管理器中。但是过了一段时间——没有采取任何进一步的行动,它神奇地消失了。就像问题中的问题总是在一段时间后自行解决一样。因此,我认为,问题更多地与延迟删除项目输出文件有关,而不是与错误有关。对于任何不合理的怀疑,我深表歉意 我想,这给了寻找解决方案一个完全不同的方向。未找到该链接,并将更新任何进展: ======================================================================== 这是VS中的一个已知错误。我经常发现它——主要是在VS2010中(有/没有SP1)。推荐几种“解决方案”。其中一些对我有帮助:
发生这种情况是因为调试完成后,
[yourProjectName].exe进程未关闭
这个问题有两种解决方案
每次对应用程序进行更改时,请转到“任务管理器->流程->[yourProjectName].exe”,结束此流程。每次对系统进行更改时,都必须结束此过程
在应用程序的“退出”窗口中添加一个“退出”按钮,并将这些行添加到“单击事件”
System.Diagnostics.Process.GetCurrentProcess().Kill();
Application.Exit();
在visual Studio 2012中看到类似错误后,不知从何而来。我发现进入项目的根文件夹并右键单击它时,我取消选中了只读,这个错误消失了。显然,TFS有时会将文件夹设置为只读。希望这能帮助任何有类似问题的人。感谢以管理员身份运行Visual Studio,我可以确认VS 2012更新2中也存在此错误
我的工作是:
清洁溶液(不要做其他事情)
关闭解决方案中所有打开的文档/文件
退出VS 2012
跑步VS 2012
构建解决方案
我不知道这是否相关,但我的项目使用来自其他项目的“链接”类文件-这是Silverlight 5项目,共享与.NET和SL兼容的类的唯一方法是链接这些文件
有些事情要考虑……在单个解决方案中跨项目查找链接文件。我们最近在VS 2012 Update 2中的WinPhone 8项目中遇到了这种情况
令人费解的是,原因是使用了元组类型。删除使用元组的代码后,问题就消失了。将代码添加回返回的问题。这听起来很疯狂,每当我构建项目时,都会显示错误,avast antivirus会将其显示为恶意尝试,并且项目不会运行。我只是简单地禁用防病毒并重新构建解决方案。丢失的.EXE文件已创建,项目已成功执行
或者你可以试试这个
我通过杀死XDesProc
解决了这个问题,它在无法删除的DLL上有一个句柄。在重建解决方案之前,清除项目,停止IIS并打开“bin”文件夹属性。取消选中“常规”选项卡中的“只读”属性,然后重新生成。如果您查看obj目录,但没有看到您的.exe,则可能是Avast!或者其他防病毒软件正在删除它。我会看到.exe出现然后消失。我一关掉Avast!,问题解决了
我也有同样的问题,我解决问题的方法是停止并禁用Windows中的“应用程序体验”服务。我也有同样的问题,在阅读了您的答案后,转到任务管理器,搜索app.exe
,因为我相信它可能没有关闭。
找到它,选择它,然后执行结束任务
。我的问题解决了。不是对你问题的直接回答
下面列出了可能出现这种情况的一种情况-
如果您的应用程序正在调试过程中,例如通过“附加到进程”调试,则可能会出现此错误我发现结束所有msbuild.exe任务(在任务管理器中)修复了VS2012的问题。这在VS 2010和Win 7中发生过。。
案例:
- 我不能
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"