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

升级VS后Boilerplate项目出现IServiceProviderIsService未注册错误

解决.NET Boilerplate 8.1.0升级VS后依赖缺失问题

错误详情

'Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider_26c5b40a-354d-4734-90cd-1b6d59e8e3d1' 等待以下依赖项:服务'Microsoft.Extensions.DependencyInjection.IServiceProviderIsService'未注册。

问题根源

升级Visual Studio后,项目依赖的.NET SDK或NuGet包可能被自动更新到.NET 8版本,但Boilerplate 8.1.0并不兼容.NET 8,导致依赖注入容器中缺少必要的服务注册。

解决步骤

1. 锁定目标框架版本

打开项目的*.csproj文件,确认目标框架未被改为.NET 8,Boilerplate 8.1.0仅支持.NET 6或.NET 7:

<TargetFramework>net6.0</TargetFramework>
<!-- 或者保留net7.0,不要修改为net8.0 -->

2. 修正NuGet包版本

检查项目中所有Microsoft.AspNetCore相关包的版本,确保它们与Boilerplate 8.1.0的依赖版本匹配,避免自动升级到.NET 8系列的包。比如Microsoft.AspNetCore.Mvc.ApiExplorer需使用对应.NET 6/7的版本,而非8.x版本。

3. 手动注册缺失服务

在Startup.cs(或使用顶级语句的Program.cs)的服务配置代码中,手动添加IServiceProviderIsService的注册:

using Microsoft.Extensions.DependencyInjection;

// 在services.AddMvc()或同类配置代码之后添加
services.AddSingleton<IServiceProviderIsService, ServiceProviderIsService>();

4. 清理NuGet缓存并重新还原

打开命令行,先清除NuGet缓存:

dotnet nuget locals all --clear

进入解决方案目录后,执行还原命令:

dotnet restore

5. 升级Boilerplate(可选)

如果确实需要使用.NET 8,可以将Boilerplate升级到支持.NET 8的最新版本,但升级前务必备份代码,因为可能存在API变更需要适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:27:11