You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

因无法删除的.exe文件导致Visual Studio 2022项目构建失败

.NET 6.0 Web应用构建卡住,输出EXE无法删除问题解决

问题描述

使用Visual Studio 2022开发.NET 6.0 Web应用时,近一周构建偶尔卡在_CopyOutOfDateSourceItemsToOutputDirectory任务阶段,需通过任务管理器结束MSBuild.exe才能终止操作,重启构建仍重复卡住。开启详细构建日志后,最后输出内容如下:

Building target "_CopyOutOfDateSourceItemsToOutputDirectory" completely.
1> Input file "C:...obj\Debug\net6.0-windows\apphost.exe" is newer than output file "bin\Debug\net6.0-windows\EmployeeCheckSystem.exe".
1> Task "Copy"
1> Task Parameter:DestinationFiles=bin\Debug\net6.0-windows\EmployeeCheckSystem.exe
1> Task Parameter:SourceFiles=C:...obj\Debug\net6.0-windows\apphost.exe
1> Task Parameter:OverwriteReadOnlyFiles=False
1> Copying file from "C:...obj\Debug\net6.0-windows\apphost.exe" to "C:...bin\Debug\net6.0-windows\EmployeeCheckSystem.exe".

尝试删除EmployeeCheckSystem.exe时,即使使用管理员权限也无法成功,无任何提示信息,文件始终存在。仅能通过重启电脑后删除文件并重新构建,且重启后无需删除文件即可正常完成构建。该问题仅影响单个项目。

解决方案

  • 排查文件锁定进程:
    使用微软Sysinternals的Process Explorer工具,按Ctrl+F搜索EmployeeCheckSystem.exe,找到锁定该文件的进程并结束,之后重新尝试构建,无需重启电脑。

  • 修改Copy任务覆盖规则:
    在项目的.csproj文件中添加以下配置,强制Copy任务覆盖只读文件:

    <PropertyGroup>
      <CopyOverwriteReadOnlyFiles>true</CopyOverwriteReadOnlyFiles>
    </PropertyGroup>
    
  • 清理项目缓存目录:
    手动删除项目根目录下的bin和obj文件夹,再重新打开Visual Studio执行构建;也可通过VS菜单栏的生成 > 清理解决方案,随后执行生成解决方案。

  • 关闭快速部署功能:
    打开项目属性的调试选项卡,取消勾选启用快速部署(调试时),该功能可能导致调试过程中文件被持续锁定。

  • 更新开发环境:
    将Visual Studio 2022更新至最新版本,同时安装.NET 6.0 SDK的最新补丁包,部分文件锁定问题属于SDK已知bug,更新后可修复。

  • 排除杀毒软件扫描:
    临时关闭系统防病毒软件测试构建是否正常,若恢复正常,将项目的bin和obj目录添加到杀毒软件的排除列表,避免实时扫描锁定文件。

内容的提问来源于stack exchange,提问作者Alexis Mercado Marquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:05:05