项目升级到.Net8.0 Autofac引发诡异的问题

前两天把项目升级到.Net8.0了,把.Net框架升级了,其他一些第三方库升级了一部分,升级完以后项目跑不起来了,报如下错误:

An unhandled exception occurred while processing the request.
DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Microsoft.AspNetCore.Mvc.ApiExplorer.EndpointMetadataApiDescriptionProvider' can be invoked with the available services and parameters:
Cannot resolve parameter 'Microsoft.Extensions.DependencyInjection.IServiceProviderIsService serviceProviderIsService' of constructor 'Void .ctor(Microsoft.AspNetCore.Routing.EndpointDataSource, Microsoft.Extensions.Hosting.IHostEnvironment, Microsoft.AspNetCore.Routing.ParameterPolicyFactory, Microsoft.Extensions.DependencyInjection.IServiceProviderIsService)'.
Autofac.Core.Activators.Reflection.ReflectionActivator.GetAllBindings(ConstructorBinder[] availableConstructors, IComponentContext context, IEnumerable<Parameter> parameters)

DependencyResolutionException: An exception was thrown while activating Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider[] -> Microsoft.AspNetCore.Mvc.ApiExplorer.EndpointMetadataApiDescriptionProvider.

看着是依赖注入的问题,后面去网上找了一下,找到博客园的一篇文章,提到是vs版本的问题,我现在用的vs版本是17.11.5,看完以后心里想vs应该不会和影响到代码,我想着通过命令行 dotnet xxx.dll 能不能启动,奇怪了命令行可以启动;接着我又用vscode试了一下,也可以启动,这就很奇怪了。

我把项目.Net6.0的代码签出项目可以跑起来,看来还是升级的问题,和依赖注入有关,后面想到了可能是autofac没有升级,把autofac升级到10.0就没问题了。

问题虽然解决了,但还是很纳闷,怎么不升级autofac,vs会导致项目跑不起来了,但是通过命令行和vscode又可以。

相关推荐
小码编匠5 小时前
WPF 自定义按钮样式(添加依赖属性、圆角)
后端·c#·.net
界面开发小八哥6 小时前
界面控件DevExpress WPF中文教程:Data Grid——卡片视图概述
.net·wpf·界面控件·devexpress·ui开发
.net开发6 小时前
WPF使用Prism框架首页界面
前端·c#·.net·wpf
Crazy Struggle9 小时前
.NET 8 高性能跨平台图像处理库 ImageSharp
.net·imagesharp·图像库·图像处理库
时光追逐者14 小时前
Visual Studio 2022:一个功能全面且强大的IDE
ide·c#·.net·.netcore·visual studio
MicrosoftReactor14 小时前
技术速递|.NET 9 中 System.Text.Json 的新增功能
ui·json·.net
界面开发小八哥14 小时前
「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?(一)
.net·wpf·数据可视化·图表控件·图表·lightningchart
VinciYan15 小时前
.NET使用TDengine时序数据库和SqlSugar操作TDengine
大数据·c#·.net·tdengine
慧都小妮子15 小时前
Spire.PDF for .NET【页面设置】演示:获取 PDF 文件中的页数
java·pdf·.net