当我调试我的项目,我收到以下错误:
“无法复制文件‘OBJ \调试\我的Dream.exe’到‘斌\调试\我的Dream.exe’,因为它正由另一个进程无法访问该文件‘本\调试\我Dream.exe’处理。”
使用Process Explorer中,我看到MyApplication.exe了出来,但系统的过程中仍然使用它,虽然我之前停止调试。 每当我改变我的代码,并开始调试它会发生什么。 如果我复制项目USB和调试,运行正常。
为什么? 如何解决这个问题?
我使用Window 7专业版。 与XP我从来没有得到这个错误。
Answer 1:
呃,这是一个老问题,一些仍然在Visual Studio中的一个,而弹出一次。 它咬了我几次,我已经失去了时间重新启动,并与VS.战斗 我敢肯定,它已经在这里讨论了SO不止一次。 它也被人们津津乐道的MSDN论坛。 没有一个实际的解决方案,但有几个解决方法。 从这里开始研究 。
发生了什么事是,VS是在文件上获取锁,然后不释放它。 讽刺的是,锁可以防止VS本身删除的文件,这样当你重新构建应用程序可以重新创建它。 唯一明显的解决方法是关闭并重新启动VS,这样它会释放文件上的锁。
我原来的变通方法对外开放的bin / Debug文件夹和重命名的可执行文件。 你不能删除它,如果它是锁着的,但你可以将其重命名。 所以,你可以再补充一个数字到底什么的,它允许你继续工作,而无需关闭所有的窗口,等待VS重新启动。 使用预生成事件有些人甚至自动此附加一个随机字符串到旧的输出文件名的末尾。 是的,这是一个巨大的黑客攻击,但这个问题变得如此沮丧和衰弱,你会做任何事情。
我后来才知道,更多的实验之后,这个问题似乎当你建立项目与设计师开的一个只出现。 所以,这为我长期工作,阻止我曾经与那些愚蠢的错误之一再次确保我总是建立一个WinForms项目之前关闭所有的窗口设计师处理的解决方案。 是的,这也有点不方便,但它肯定比脱裤子不必重新启动VS每小时两次或更多。
我认为这也适用于WPF也是如此,虽然我不使用它,并没有亲自经历过的问题出现。
我也还没有尝试重现它在VS 2012 RC。 我不知道,如果它被固定在那里又或没有。 但我的经验,到目前为止一直是它仍然设法弹出微软宣称已经固定它甚至以后。 它仍然有在VS 2010 SP1。 我不是说他们的程序员都是白痴,谁也不知道他们在做,当然什么。 我算起来也有对错误和/或它的很难在实验室中可靠地重现只是多种原因。 这是同样的原因,我没有亲自提交的任何错误报告(尽管我+其他1'ed人民),因为我似乎无法可靠地重现它,而不是像雪人。
<端咆哮被引导在没有人特别是>
Answer 2:
我以前也有这种错误突然出现在我身上,即使是在Visual Studio 2008年它回来了,在Visual Studio 2012更普遍。
这是我做的。
在麻烦的项目的预生成事件贴上这样的:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
Answer 3:
电脑(右键) - >管理 - >服务和应用程序 - >服务 - >启用应用程序体验
为我工作!
Answer 4:
我曾在Visual Studio 2013年同样的问题,我不知道是什么原因导致这对我的项目,但我可以通过清洗液和重建它来修复它。
- 构建>清理解决方案
- 构建>重建解决方案
Answer 5:
至少在我来说,我已经注意到的Visual Studio 2012创建了至少两个msbuild.exe鬼过程,其中未建后灭亡。 这些僵尸显然是导致文件锁的出现。
杀害msbuild.exe的是一个时间的解决方案,它需要每构建的基础工作要做。
但是,我已经弄清楚,我可以禁用并行构建一劳永逸 - 走进工具>选项>项目和解决方案>生成和运行>“并行项目的最大数量构建” - 默认情况下它拥有的8值,我“已经切换到1。作品等的魅力。
当然版本是有点慢了,但有备无患。 至少在这个特殊的小项目,我并不需要一个以上的构建线程。
Answer 6:
见我的答案在这里 ,如果你在运行单元测试有这个问题。 回答以下复制:
在塞巴斯蒂安的答案的基础上,我增加了一个预生成步骤,我的测试项目自动杀死任何vstest.*
可执行程序仍在运行。 以下预生成命令为我工作:
taskkill /f /im vstest.* exit 0
在exit 0
命令是在年底,以防止构建失败时,有没有vstest.*
的可执行文件运行。
Answer 7:
我理解,这是一个老问题。 不幸的是,我面临着同样的问题,我的.net core 2.0
应用程序visual studio 2017
。 所以,我认为它共享为我工作的解决方案。 该解决方案之前,我曾尝试下面的步骤。
- 重新启动Visual Studio中
- 关闭了所有的应用程序
- 清理我的解决方案和重建
上述步骤没有未解决的问题。
然后我打开Task Manager
,并选择dotnet
进程,然后单击结束任务按钮。 后来我打开Visual Studio和一切工作正常。
Answer 8:
最近我一直在与Visual Studio 2012年同样的错误描述一个麻烦:“因为它正由另一个进程的进程无法访问该文件...”
为了解决这个问题,首先你需要了解哪些仍然使用它的应用程序。 我已经关机一样“的MSBuild”和“的MSBuild主机”的所有进程。 但是,这是不够的。 如果您已经安装了“代码契约”并打开,然后有时需要你的DLL检查和挂在该操作。
所以,你需要停止“CCCheck.exe”的所有进程,这一切。
最后,要了解这个过程是使用你的DLL,你总是可以尝试只删除“目标文件”文件夹中的文件管理器,该操作将失败,您可能会看到“消息窗口”与挂操作的描述。 此外,作为一种变型,你可以尝试用“SYS内幕套房”的申请。
Answer 9:
为我工作。 任务管理器 - >项目的名称 - >结束任务。 (我有3个与我的项目名称相同的过程);
VS 2013; 运8;
Answer 10:
确保以往任何应用程序的运行(例如,启动无调试选项)实际停止。 我工作的一个WPF应用程序,启动无需调试过,当我一直得到错误它最小化。 关闭应用程序VS行为后得到恢复正常。
Answer 11:
我已经被这个问题在Visual Studio 2017年它开始大约两三个星期前的困扰,并且已经严重侵蚀了我的工作效率。 干净Rebulid没有工作; 即使重新启动我的机器不能做的工作。
处理这个问题的方法之一是清理违规组装,并建立(而不是重建),要立即之后运行项目。 这工作的时间约为30%。
然而,可能是最可靠的解决方案,我发现是打开一个开发人员命令提示符,使用msbuild
直接。 我一直在做这最后三天,到目前为止,这个问题还没有发生过一次。
Answer 12:
在我的情况是,我必须启用“显示所有文件”。 的Visual Studio 2017年
Answer 13:
这是纯粹的投机,而不是答案。
不过,我一直有这个问题了一会儿。
我一段时间后开始怀疑VS和我的AV预防措施之间的相互作用。
一些上场后,似乎它可能已经消失,当我修改我的防病毒,使下一切
C:\用户[名] \ AppData \本地\微软\ VisualStudio的\ 10.0 \ ProjectAssemblies
文件夹是不包含在实时保护。
这看起来好像构建居然在这里第一次写的DLL,然后将其复制到最终生成位置。
Answer 14:
这可能是太晚了。 但是,我遇到过类似的问题,在我的情况该项目有自我参考。 因此,从引用删除它的工作就像一个魅力!
Answer 15:
我已经找到了最快捷的方式,但不关闭的形式或重新启动VisualStudio的是去该项目的编译页面,并单击“高级编译选项...”按钮。 然后进行任何更改的选项之一(比如,改变生成完全调试信息到仅PDB),然后单击确定。 它的工作原理每次和将不得不这样做,直到MS修复这个bug(直到我从VS2012切换到VS2013我从来没有这个问题)
另外要注意,如果你不能清理项目或解决方案,它不会建。 该文件由VS绝对锁定(不是病毒的问题,至少在我的情况)
Answer 16:
我尝试了所有这些建议以及其他地方发现了其他的建议,只为我工作的事情是重新启动我的电脑。 然后,我做了一个干净的解决方案,然后重建。 我使用Visual Studio 2013为参考。
Answer 17:
我已经运行到这个同样的问题,我发现了什么是有实际运行在后台多张Windows窗体应用程序 。 它发生在你的应用程序有两种形式,并关闭第二个形式 ,是不是你的主要形式 ,因此应用程序不会完全退出。
我通常运行我的应用程序
解决方法是关闭Windows窗体应用程序的其他实例 。 这是一个永远关闭您的应用程序实例的方式。
Answer 18:
预编译命令
(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)
帮助
Answer 19:
[解决]错误:无法访问文件斌/调试/ ...因为它正在使用由另一个进程:
我接近于你,而你试图层出不穷,如第一装载形式再经过有时它会自动消失并加载到屏幕上的第二种形式运行两个窗口形成一个得到这个错误。
基本上,你需要关闭它在后台和这个错误的主要原因运行你的第一种形式。
要关闭第一种形式,你必须的这两行代码在第二种形式加载事件处理程序添加。
Form1 form = new Form1();
form.Close();
这将很好地解决了错误。
Answer 20:
一个简单的办法就是你去BIN \ Debug文件夹,删除该文件夹中的所有文件,然后重建。 如果它不工作,紧密的Visual Studio然后转到斌\ Debug文件夹使用文件浏览器,在左侧络筒机,点击文件>打开命令提示符>打开命令提示符作为管理员>输入此命令“DEL / F / Q / A *”>然后重建
Answer 21:
我发现科迪灰色的回答部分有帮助的,因为它没有告诉我我的问题其中的一些,你也可能会遇到的真正根源:Visual Studio的测试执行保持默认打开并保持在文件上的锁。
要停止主要无用的行为,遵循指示https://connect.microsoft.com/VisualStudio/feedback/details/771994/vstest-executionengine-x86-exe-32-bit-not-closing-vs2012-11-0 -50727-1-rtmrel
取消选中测试菜单 - >测试设置 - >“保留测试执行发动机运行”
Answer 22:
我的问题是DOTNET得到挂断电话,只要VS会尽量让一个新的DLL,或者访问一个旧的DOTNET过程将含住DLL和从克隆的dll停止视觉工作室。 解决办法是刚刚结束在任务管理器中所有的dotnet任务(它实际上只去除死一个,如果你想结束一个,也不会关闭,这意味着它的工作)。
Answer 23:
关闭VisualStudio中,CTRL-ALT-删除,选择任务管理器,找到并结束所有的MSBuild进程 - VisualStudio中基本上有一个非常严重的错误,这错误失去了调试器和调试器保持在.pdb文件锁在调试/箱夹。 当您结束所有的MSBuild(调试)进程,删除/调试/ bin文件夹并重新打开在Visual Studio解决方案。 你是好走了。 微软需要解决这个废话。
Answer 24:
我已经打开一个单独的问题关于2017年VS一个更新后也有类似的行为。 这个问题似乎是由防病毒程序,虽然产生。
我已经添加了bin文件夹防病毒排除列表,机器重新启动,现在它似乎工作。
Answer 25:
运行taskmanager
。
找到netcore
并将其删除。
然后,您可以手动或通过运行删除文件Clean
。
Answer 26:
另外杂牌,唉,但它很容易和VS作品对我来说2013年单击项目。 在属性面板应该是一个条目命名的项目文件与价值
(项目名称).vbproj
更改项目名称 - 比如添加-01到最后。 这是锁定原始.zip文件仍然存在,但不再被引用...所以你的工作能继续进行。 在计算机重新启动下一次,该锁消失,你可以删除错误的文件。
文章来源: Error: Cannot access file bin/Debug/… because it is being used by another process