我在Visual Studio中遇到一个奇怪的问题:
如果在调试过程中引发了未处理的异常,我将无法构建我的 C#应用程序:
Unable to copy file "C:\Projects\A\bin\A.dll" to "..\..\bin\A.dll". The process cannot access the file '..\..\bin\A.dll' because it is being used by another process.
Could not copy "C:\Projects\A\bin\A.dll" to "..\..\bin\A.dll". Exceeded retry count of 10. Failed. The file is locked by: "Microsoft Visual Studio 2019 (14904)"
是否存在解决此奇怪错误的永久解决方案? (我唯一的解决方法是当前重新启动Visual Studio)
我尝试过但对我没有用的东西
在我的所有项目中插入预构建事件脚本也是不切实际的!链接:https://blog.ndepend.com/visual-studio-script-saves-time-pain/
有人可以解决这个问题吗?
答案 0 :(得分:2)
有点奇怪,但是问题是由调试选项Use Managed Compatibility Mode
引起的!因此,只需取消勾选Debug-> Options-> Use Managed Compatibility Mode
,Visual Studio就不会再出现文件锁定错误!
备注:禁用此选项的不足之处是,您会因为VS而烦恼,耗时且耗时长! (More information)
答案 1 :(得分:2)
对我有用的方法-关闭解决方案,删除bin和obj文件夹,重新打开并构建。
答案 2 :(得分:0)
对我来说,删除obj和bin文件夹是不可能的,因此我必须安装Microsoft的Process Explorer才能找到仍在运行的应用程序dll进程。杀死这个过程对我有用。
答案 3 :(得分:0)
这有点愚蠢,但是: 在“进程”选项卡的Windows任务管理器中,只需找到Microsoft Visual Studio <2019>,单击“ ^”以折叠它的子树,然后找到“ Microsoft Visual Studio XAML设计器” 选择“ Microsoft Visual Studio XAML设计器”,然后在每次调试之前简单地对其进行结束处理。
答案 4 :(得分:0)
删除对我来说是不可能的,但结果是 VS2019 保留了一个正在运行的软件的调试版本,当我停止调试时,该版本不会自动关闭。在任务管理器 -> 关闭正在运行的应用程序,我可以再次开始构建/调试。
答案 5 :(得分:0)
我在 VS2019 的 WinForms 项目中遇到过这种情况,在该项目中,其他建议的解决方案均无效,并且 O/S 拒绝退出 VS 并尝试删除受影响的文件,但仍声称文件已打开。< /p>
在这种情况下,在这里起作用的修复是转到任务管理器,并找到并终止 VBCSCompiler 的副本,即使在 VS 终止后,该副本仍在运行。它显示在“后台进程”下。
在那之后,再次启动 VS 工作正常。
答案 6 :(得分:0)
在我的情况下简单修复。当我尝试再次运行应用程序并出现此错误时,我的应用程序已经在运行。关闭它解决了我的问题。