更新: 可以在Microsoft Connect中找到重现此错误的示例项目.我还测试并验证了下面接受的答案中给出的解决方案适用于该示例项目.如果此解决方案不适合您,您可能遇到了另一个问题(属于另一个问题).
这是一个之前提出的问题,无论是Stack Overflow还是其他地方,但我发现的这些建议都没有帮助我,所以我只想尝试一个新问题.
场景:我有一个简单的Windows窗体应用程序(C#,.NET 4.0,Visual Studio 2010).它有大多数其他形式继承的基本形式,它使用Entity Framework(和POCO类)进行数据库访问.没什么好看的,没有多线程或任何东西.
问题:一切都很好.然后,当我即将启动应用程序时,Visual Studio无法构建.我收到警告"无法删除文件'... bin\Debug\[ProjectName] .exe'.访问路径'... bin\Debug\[ProjectName] .exe'被拒绝." 和错误"无法将文件'obj\x86\Debug\[ProjectName] .exe'复制到'bin\Debug\[ProjectName] .exe'.进程无法访问文件'bin\Debug\[ProjectName] .exe "因为它被另一个进程使用了." (我在运行Rebuild时得到警告和错误,但只运行Build时出错 - 不认为这是相关的吗?)
我完全理解警告和错误消息的内容:Visual Studio显然试图覆盖exe文件,同时由于某种原因它同时锁定它.但是,这并没有帮助我找到问题的解决方案......我发现唯一有效的方法是关闭Visual Studio并重新启动它.然后构建和启动工作,直到我在某些表单中进行更改,然后我再次遇到相同的问题并且必须重新启动...非常令人沮丧!
正如我上面提到的,这似乎是一个已知的问题,所以有很多建议的解决方案.我将列出我在这里尝试过的内容,以便人们知道要跳过的内容:
将以下内容添加到项目的预构建事件中:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
Run Code Online (Sandbox Code Playgroud)将以下内容添加到项目属性(.csproj文件):
<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
Run Code Online (Sandbox Code Playgroud)但是,他们都没有为我工作,所以你可能会明白为什么我开始有点沮丧.我不知道在哪里可以看,所以我希望有人能给我一些东西!这是VS中的一个错误,如果是这样的补丁?或者我做错了什么,我有一个循环引用或类似的,如果是这样我怎么能找到?
任何建议都非常感谢:)
更新:如在下面评论中提及,我也使用Process Explorer的,它实际上检查是 Visual Studio中被锁定的文件.
使用Visual Studio调试程序时,您可以选择Enable the Visual Studio hosting process.这个选项的目的是什么,它有什么作用?
我使用TeamCity,后者又调用msbuild(.NET 4).我有一个奇怪的问题,在构建完成后(如果它是一个成功的构建似乎没关系),msbuild.exe保持打开状态,并锁定其中一个文件,这意味着每次TeamCity尝试要清除其工作目录,它会失败,并且无法继续.
这几乎每次都会发生.
我真的迷失了这个,所以我会尽量提供尽可能多的细节.
/m命令行参数(这意味着使用多个核心)External Tools\Telerik\Telerik.Reporting.Dll.(External Tools在类似的路径结构中,dir中还包含其他几个.DLL文件,这些文件永远不会导致此问题).目前,这是Telerik报告的试用版,以防万一.msbuild.exe *32在任务管理器中列出的过程:我相信有7.使用Process Explorer中,他们看起来都像顶级工艺(无父母).它们全部使用20-50MB RAM和0.0%CPU.svn:mime-type = application/octet-stream以前有人碰过这个吗?
我在VS 2010中有一个简单的WinForms解决方案.每当我构建它时,输出文件(bin\debug\app.exe)最终被锁定,后续构建失败,并显示一条消息
"The process cannot access the file 'bin\Debug\app.exe' because it is being used by another process."
.构建项目的唯一方法是重新启动VS之后每一个构建,都非常尴尬.
我发现这篇旧博客帖子http://blogs.geekdojo.net/brian/archive/2006/02/17/VS2005FileLocking.aspx - 似乎这个问题真的很老了.有谁知道这里发生了什么,或者至少有一些解决方法?
更新
我实际上并没有运行该文件.锁定发生在构建之后,而不是在调试之后(即启动VS - 构建 - 构建 - 失败!)并且我尝试关闭防病毒软件.它没有帮助.
更新2
Process Explorer显示已加载文件的devenv.exe(在DLL中,而不在Handles中).看起来构建期间的一些故障阻止了卸载,但是(第一个)构建完成时没有任何消息,然后"1成功,o失败"/
我在C#中有一个项目,每次尝试编译项目时都会出现此错误:
(无法将文件"obj\Debug\Project1.exe"复制到"bin\Debug\Project1.exe".进程无法访问文件'bin\Debug\Project1.exe',因为它正由另一个进程使用.)
...所以我必须从任务管理器关闭该过程.我的项目只有一种形式,没有多线程.
解决方案是什么(不重启VS或杀死进程)?

这是我们的错误代码,我们如何才能解决这个问题?
我在Windows服务器上运行的应用程序使用Jet/Access数据库.由于某些原因,每两周左右数据库文件被系统进程锁定(PID 4,似乎已修复)
经过一些谷歌搜索后,我发现其他一些用户的文件被特殊进程锁定,但不同的文件(当然).
我一直在:
警告MSB3026:无法复制dll错误.
我在解决方案中有几个项目.
在构建时,我也得到错误:
错误47无法将"myapp\bin\Debug*.dll"复制到"bin*.dll".超过重试次数10.失败.
应用程序在调试过程中停止响应,我每次都必须关闭Visual Studio.这很烦人,但现在它也变得令人沮丧.
我们是八个团队成员,我们所有人都得到了同样的错误.我们无法重建解决方案,并且应用程序运行速度非常慢.
我们在项目中使用的一件事是SignalR.
这些是我到目前为止所尝试过的.他们没有帮助我,但他们可能会帮助读者:
我试过Visual Studio调试/加载中描述的解决方案非常慢,但是没有用.
我还尝试取消选中在每个项目属性中启用Visual Studio托管过程,但也没有解决问题.
解决方案在http://www.richard-banks.org/2008/04/how-to-fix-problems-with-locked-files.html 和 http://social.msdn.microsoft.com/Forums/中描述.EN-US /的MSBuild /线程/ 40ed753e-47af-4638-8a72-1d607102a05c /
在项目上预构建脚本:
if exist "$(TargetPath).locked" del "$(TargetPath).locked" if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
bin文件夹不受源代码管理.
有时杀死Microsoft.VisualStudio.Web.Host.exe进程会释放对文件的锁定,但这并不总是有效.
我以管理员模式运行Visual Studio.
我对源代码文件夹具有完全访问权限(权限读/写).
错误1:
错误12无法将文件"obj\Debug\coursework2.exe"复制到"bin\Debug\coursework2.exe".该进程无法访问文件'bin\Debug\coursework2.exe',因为它正由另一个进程使用.
错误2:
错误11无法将"obj\Debug\coursework2.exe"复制到"bin\Debug\coursework2.exe".超过重试次数10.失败.
我一直在重复这两个错误.请向我解释如何解决这个问题.
最近,当我尝试运行我的项目时,Visual Studio Express 2013 for Web经常抛出此错误,而我发现的唯一解决方法是退出并重新启动Visual Studio或(有时)完全重新启动Windows。是什么会引起这样的事情?
完全错误转储
Error 19 Could not copy "obj\Debug\HobbsEventsMobile.dll" to "bin\HobbsEventsMobile.dll". Exceeded retry count of 10. Failed. HobbsEventsMobile
Error 20 Unable to copy file "obj\Debug\HobbsEventsMobile.dll" to "bin\HobbsEventsMobile.dll". The process cannot access the file 'bin\HobbsEventsMobile.dll' because it is being used by another process. HobbsEventsMobile
Run Code Online (Sandbox Code Playgroud) 使用Visual Studio 2013(更新3)构建多个项目时,出现以下错误:
由于找不到文件“ ..”,因此无法复制。
无法将“ ..”复制到“ ..”。重试计数超过10。失败。
无法将文件“ ..”复制到“ ..”。该进程无法访问文件“ ..”,因为它正在被另一个进程使用。
我用“ Unlocker”注意到,由于某些奇怪的原因,“ QTAgent32.exe”阻止了其中一些文件。
这似乎是一个大问题:
https://connect.microsoft.com/VisualStudio/feedback/details/533411