Windows Server 2019中dotnet-coverage报错“Failed to create CoreCLR, HRESULT:0x80004005”
解决Windows Server 2019自托管GitHub运行器中dotnet-coverage的“Failed to create CoreCLR, HRESULT: 0x80004005”错误
问题成因
- .NET运行时版本不兼容:dotnet-coverage依赖特定版本的.NET Core/.NET Runtime,Windows Server 2019默认预装的版本可能过低,或与当前使用的工具版本不匹配,导致CoreCLR初始化失败。
- 运行器权限不足:GitHub自托管运行器的服务账户缺少访问CoreCLR相关系统资源、文件的权限,比如无法读取.NET安装目录,或无法创建临时文件。
- 工具版本存在兼容性问题:使用的dotnet-coverage版本存在bug,或与Windows Server 2019的系统环境不兼容。
- 缺少必要的系统依赖:Windows Server 2019未安装CoreCLR运行所需的Microsoft Visual C++ Redistributable组件,导致运行时无法正常初始化。
解决方法
1. 检查并更新.NET运行时
- 执行命令查看已安装的运行时版本:
dotnet --list-runtimes - 确认是否包含dotnet-coverage要求的版本(通常需要.NET 5及以上版本)。若版本不足,下载对应版本的.NET Runtime安装包完成安装,之后重启GitHub运行器服务。
2. 提升运行器账户权限
- 将GitHub自托管运行器的服务账户添加到本地管理员组,或确保账户对.NET安装目录、运行器工作目录拥有完全控制权限。
- 打开服务管理器,找到GitHub运行器服务,右键选择「属性」-「登录」,确认使用的账户权限充足,必要时切换至管理员账户运行服务。
3. 调整dotnet-coverage工具版本
- 升级到最新稳定版:
dotnet tool update --global dotnet-coverage - 若最新版仍有问题,尝试降级到已知兼容的版本(例如17.5.0版本):
dotnet tool install --global dotnet-coverage --version 17.5.0 - 调整版本后,清理运行器的工作目录,重新执行构建流程。
4. 安装VC++ Redistributable组件
- 下载与当前.NET运行时版本匹配的Microsoft Visual C++ Redistributable(优先选择x64版本),安装到Windows Server 2019系统中,完成后重启系统。
5. 额外排查步骤
- 检查运行器工作目录所在磁盘的剩余空间,避免因磁盘满导致临时文件创建失败。
- 执行
dotnet --info查看系统环境信息,确认.NET环境变量配置正确,无版本冲突。
内容的提问来源于stack exchange,提问作者ilitirit
相关产品推荐
相关产品推荐

