文件被 Visual Studio 2019 锁定

File is locked by Visual Studio 2019

我在 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)

我试过但没用的:

在我的所有项目中插入预构建事件脚本也不切实际! Link: https://blog.ndepend.com/visual-studio-script-saves-time-pain/

有人能解决这个问题吗?

有点奇怪,但问题是由调试选项引起的Use Managed Compatibility Mode!所以只需取消调试 -> 选项 -> Use Managed Compatibility Mode 并且 Visual Studio!

不会再出现文件锁定错误

备注:禁用此选项的缺点是VS会出现烦人的长时间耗时的评估错误! ()

对我有用的方法 - 关闭解决方案,删除 bin 和 obj 文件夹,重新打开并构建。

删除 obj 和 bin 文件夹对我来说是不可能的,所以我必须安装 Microsoft 的 Process Explorer 才能找到应用程序的 dll 进程仍然 运行。终止这个过程对我有用。

有点傻但是: 在 windows 任务管理器的进程选项卡中,找到 Microsoft visual studio <2019>,单击“^”折叠其子树并找到“Microsoft Visual Studio XAML Designer” select“Microsoft Visual Studio XAML Designer”并在每次调试之前简单地结束处理它。

删除对我来说是不可能的,但事实证明 VS2019 保留了软件的调试版本运行,当我停止调试时它不会自动关闭。在任务管理器中 -> 关闭 运行 应用程序,我可以再次启动 build/debug。

我在 VS2019 的 WinForms 项目中遇到过这个问题,其中 none 其他建议的解决方案有效,并且 O/S 拒绝退出 VS 并尝试删除受影响的文件仍然声称文件已打开。

在这种情况下有效的修复方法是转到任务管理器,找到并终止 VBCSCompiler 的副本,该副本即使在 VS 终止后仍被保留运行。它显示在“后台进程”下。

之后,再次启动 VS 正常。

我的情况很简单。当我再次尝试 运行 并收到此错误时,我已经有了我的应用程序 运行ning。关闭它解决了我的问题。

运行 构建前清理或使用重建选项。 VS 会很好地构建它。有点慢,但它每次都有效。无需重启 VS。

删除对我也有效,但只有在我从 taskmgr 强制退出 DTSDebugHost 之后,才能让其他无法正常工作的人退出。