ASP.NET添加AutoMapper服务时遭遇CS1503错误求助
问题排查与解决方案
错误原因
出现CS1503错误的核心原因有两个:
- 缺少ASP.NET Core集成AutoMapper必需的扩展包
AutoMapper.Extensions.Microsoft.DependencyInjection,AddAutoMapper方法并非AutoMapper核心包提供,而是来自该扩展包。 - AutoMapper 15.x对应的扩展包中,
AddAutoMapper的API签名已更新,不再支持直接传入Profile类型作为参数,而是要求通过配置表达式来添加配置。
解决步骤
1. 安装匹配版本的扩展包
在项目的.csproj文件中添加以下包引用,确保版本与你安装的AutoMapper(15.0.1)一致:
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="15.0.1" />
也可通过NuGet包管理器搜索安装同名包,选择15.0.1版本。
2. 修改服务注册代码
将Program.cs中的AddAutoMapper调用替换为以下两种方式之一:
方式一:直接添加指定Profile
builder.Services.AddAutoMapper(cfg => { cfg.AddProfile<AutoMapperConfigurationProfile>(); });
方式二:自动扫描程序集中的所有Profile(适合多Profile场景)
如果项目中有多个继承自Profile的配置类,可直接扫描整个程序集自动注册:
builder.Services.AddAutoMapper(cfg => { cfg.AddProfiles(typeof(AutoMapperConfigurationProfile).Assembly); });
验证
确认Program.cs中已引入Invoices.Api命名空间(你的代码中已添加using Invoices.Api;,无需额外修改),重新编译项目即可解决该错误。
内容的提问来源于stack exchange,提问作者Filip Z
相关产品推荐
相关产品推荐

