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

.NET SDK 2.1.300-rc1构建后残留.NET Core Host进程求助

解决.NET Core 2.1 RC1构建后残留.NET Core Host进程的问题

我之前在测试2.1.300-rc1版本时也碰到过一模一样的进程残留问题,给你几个经过验证的解决思路:

1. 升级到正式版SDK(优先推荐)

RC版本本身就是预览版,存在进程泄漏这类bug很常见。2.1.300的正式版早就发布了,直接升级到正式版的.NET Core 2.1 SDK,大部分这类RC阶段的进程残留问题都会被官方修复,这是最彻底的解决办法。

2. 尝试添加额外的构建参数

除了你试过的/p:UseSharedCompilation=false和/p:UseRazorBuildServer=false,可以再加上这两个参数试试:

dotnet build /p:UseHostCompilerIfAvailable=false /p:BuildServer=false

这两个参数会强制关闭更多后台编译相关的服务进程,有时候RC版本的共享编译模块会出现进程回收失败的情况,加上这两个参数能彻底禁用相关后台服务。

3. 在PowerShell脚本中手动清理残留进程

如果暂时没法升级SDK,可以在每个构建完成后,手动清理闲置的dotnet进程。比如在你的循环里,每次dotnet build执行完成后,添加一段PowerShell命令杀掉那些无窗口、启动时间较早的dotnet进程:

# 构建完成后执行
Get-Process dotnet | Where-Object {
    # 筛选无主窗口、启动时间超过5分钟的进程(可根据你的构建时长调整)
    $_.MainWindowTitle -eq "" -and $_.StartTime -lt (Get-Date).AddMinutes(-5)
} | Stop-Process -Force

注意:这个方法是临时workaround,要根据你的实际构建时长调整时间阈值,避免误杀正在运行的正常进程。

4. 检查脚本的执行逻辑

确认你的PowerShell脚本是同步执行每个dotnet build命令,没有使用Start-Process或者后台运行的方式。比如确保脚本里是直接调用:

dotnet build YourSolution.sln

而不是用Start-Process dotnet -ArgumentList "build YourSolution.sln" -NoNewWindow -PassThru这类可能导致进程脱离脚本管控的方式。

内容的提问来源于stack exchange,提问作者swannee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:21:25