Visual studio 无法将“obj\Debug\{project}.dll”复制到“bin\{project}.dll”

Visual studio 无法将“obj\Debug\{project}.dll”复制到“bin\{project}.dll”,visual-studio,windows-8,visual-studio-2013,Visual Studio,Windows 8,Visual Studio 2013,Visual Studio Express 2013 for web最近在我尝试运行项目时经常抛出此错误,我找到的唯一解决方案是退出并重新启动Visual Studio,或者有时完全重新启动Windows。什么会导致这样的事情 完全错误转储 提示出现在错误消息中: cannot access the file 'bin\HobbsEventsMobile.dll' because it is being used by another process 我猜dll仍在使用以前的调试会话。你能杀死

Visual Studio Express 2013 for web最近在我尝试运行项目时经常抛出此错误,我找到的唯一解决方案是退出并重新启动Visual Studio,或者有时完全重新启动Windows。什么会导致这样的事情

完全错误转储


提示出现在错误消息中:

cannot access the file 'bin\HobbsEventsMobile.dll' because it is being used by another process
我猜dll仍在使用以前的调试会话。你能杀死拥有它的进程吗?如果您不确定运行哪个进程并在dll名称上找到,那么将显示仍然打开dll的进程


另一个猜测:您是否使用Ctrl-F5在调试器外部运行?如果是这样的话,那么这也可以解释为什么dll仍然在使用。

您也可以创建干净的解决方案,并且在再次构建之前,如果.dll文件仍然存在,请检查调试文件夹。如果干净的解决方案不起作用,您可以尝试更改文件名并生成解决方案。您将看到这些错误正在消失。

1-选择您的项目

2-从查看选择属性页转到查看

3-确保输出路径像这样为空


通过转到“项目属性”在解决方案资源管理器中的项目上单击鼠标右键,然后选择“属性”选项,选择“生成事件”选项卡,在项目中创建预生成操作。添加此代码:

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

我现在不在工作,但我今天注意到的另一件事,除了让我的生活更轻松可能会有所帮助外,就是在解决方案上保持干净似乎可以解决问题。每次启动调试器之前,我都必须进行清理,但这绝对是可以忍受的。太棒了!我必须经常重启电脑。在任务管理器中找不到进程,只有在PE中。了解PE和其他故障排除实用程序已集成到一套工具中可能会有所帮助:您是否找到了解决此问题的永久解决方案?如果你有…@usefulBee nope,请分享。我试过的都没用。我确实发现清理解决方案通常会使我不必重新启动visual studio。感谢您的快速响应。这个问题真的很糟糕。如果我找到了解决方案,我会回来的。当我升级到VisualStudio 2015时,这个问题就消失了。我祈祷我可能再也看不到这条恼人的消息了。将输出路径映射到obj\Debug\似乎效果更好,因为程序集不会被转储到您的根文件夹中。
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"