发布网站时遇错误:无法删除非空目录的解决方法咨询
解决发布网站时"无法删除非空目录obj\Release\AspnetCompileMerge\TempBuildDir"的问题
哈哈,这个坑我之前踩过好几次!给你几个亲测有效的解决办法,按顺序试下来基本都能搞定:
1. 先搞定进程占用问题
这个目录大概率是被Visual Studio或者相关的编译进程锁定了:
- 打开任务管理器,找到
dotnet.exe、msbuild.exe、iisexpress.exe这些和.NET/VS相关的进程,全部结束掉,然后重新尝试发布。 - 嫌手动找麻烦的话,管理员权限打开命令提示符,执行这条命令强制结束所有dotnet进程:
注意:这条命令会关掉所有正在运行的.NET程序,别误关了重要的哦。taskkill /f /im dotnet.exe
2. 手动清理缓存和项目文件
有时候VS会把这个目录藏起来或者锁定,先关了VS再操作:
- 找到项目根目录下的
obj文件夹,直接整个删除(如果删不掉,先用上面的方法结束进程)。 - 再清理VS的全局缓存:删掉
C:\Users\[你的用户名]\AppData\Local\Microsoft\VisualStudio\[你的VS版本号]\ComponentModelCache里的所有文件,还有C:\Users\[你的用户名]\AppData\Local\Temp里的临时文件。
3. 修改发布配置文件
可以通过配置让发布过程跳过这个目录的清理,或者强制删除:
- 打开项目里的发布配置文件,路径一般是
Properties\PublishProfiles\[你的发布配置名称].pubxml,在<PropertyGroup>里添加这几行配置:<AspnetCompileMergeCleanup>False</AspnetCompileMergeCleanup> <DeleteExistingFiles>True</DeleteExistingFiles> - 如果是用命令行发布,直接加参数:
msbuild /t:Publish /p:DeleteExistingFiles=True /p:AspnetCompileMergeCleanup=False
4. 用管理员权限运行VS
有时候是权限不够导致删不掉目录,右键Visual Studio图标,选「以管理员身份运行」,再打开项目尝试发布。
5. 检查防病毒软件
有些杀毒软件的实时监控会锁定临时文件目录,临时关掉实时保护功能,发布成功后再打开就行。
内容的提问来源于stack exchange,提问作者Italo Rodrigo
相关产品推荐
相关产品推荐

