文件被 Visual Studio 2019 锁定

问题描述 投票:0回答:11

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

我尝试过但对我不起作用:

  • VS 菜单 -> 工具 -> 选项 -> 项目和解决方案 -> 构建并运行 -> 并将“设置最大并行构建数”设置为 1。
  • 停止防病毒软件
  • 启用应用程序体验服务(Windows 10 中未找到)
  • 取消勾选 VS 菜单 -> 工具 -> 选项 -> 项目和解决方案 -> 常规 -> 允许并行项目初始化
  • 取消勾选“调试”->“选项”->“调试”->“常规”->“当一个进程中断时中断所有进程”

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

有没有人能解决这个问题?

c# visual-studio visual-studio-2019 locked-files
11个回答
22
投票

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


6
投票

有点奇怪,但问题是由“调试”选项引起的

Use Managed Compatibility Mode
!因此,只需取消选中“调试”->“选项”->“
Use Managed Compatibility Mode
”,Visual Studio 就不再出现文件锁定错误!

备注: 禁用此选项的缺点是你会遇到 VS 带来的恼人的长时间耗时的评估错误! (更多信息)


2
投票

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


0
投票

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


0
投票

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


0
投票

我在 VS2019 的 WinForms 项目中遇到过这种情况,其中其他建议的解决方案都不起作用,并且退出 VS 并尝试删除受影响的文件被操作系统拒绝,仍然声称文件已打开。

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

之后,再次启动VS,一切正常。


0
投票

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


0
投票

我也遇到了同样的情况,它发生是因为运行后打开的 bash 窗口,我没有关闭它,只是最小化它,它仍在运行。因此,当我再次尝试运行该程序时,它显示该文件被另一个进程锁定,在我的情况下,很明显我需要退出之前打开的 bash 窗口。

除了尝试其他解决方法之外,还可以检查这个。


0
投票

关闭 Visual Studio 2022 对我不起作用;调试/选项中没有可用的“使用托管兼容模式”选项。 我使用 SysInternals/Handle 然后使用 TaskKill /PID 。 该 dll 在目标进程中创建一个 ProxyControl 到 Spy 控件。[ManagedSpy]


-1
投票

在构建之前运行 Clean 或使用 Rebuild 选项。 VS 会构建得很好。有点慢,但每次都有效。无需重启 VS。


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.