在我的 ASP.NET Core 6 Web API 中,我使用这些 Nuget 包:
AutoMapper ver-12.0.1
AutoMapper.Extensions.Microsoft.DependencyInjection ver-12.0.1
我删除了:
AutoMapper.Extensions.Microsoft.DependencyInjection ver-12.0.1
并将 AutoMapper 升级为:
AutoMapper ver-13.0.1
但是,我收到了这个错误:
未处理的异常。 System.IO.FileNotFoundException:无法加载文件或程序集“AutoMapper,版本= 13.0.0.0,文化=中性,PublicKeyToken = be96cd2c38ef1005”。系统找不到指定的文件。
文件名:'AutoMapper,版本=13.0.0.0,文化=中性,PublicKeyToken=be96cd2c38ef1005'
在 AutoMapperServiceExtension.ConfigureAutoMappers(IServiceCollection 服务)
在 C:\Program.cs 中的 Program.$(String[] args) 处:第 32 行
它指向:
builder.Services.ConfigureAutoMappers()
主要代码-扩展:
public static class AutoMapperServiceExtension
{
public static void ConfigureAutoMappers(this IServiceCollection services)
{
services.AddAutoMapper(typeof(BankMapperProfile));
}
}
实体映射器:
public class BankMapperProfile : Profile
{
public BankMapperProfile()
{
// ...
}
}
Program.cs
:
using API.Extensions;
var builder = WebApplication.CreateBuilder(args);
ConfigurationManager configuration = builder.Configuration;
var environment = builder.Environment;
// Add services to the container.
builder.Services.AddHttpContextAccessor();
builder.Services.AddMvc();
builder.Services.AddControllers().AddNewtonsoftJson(op => op.SerializerSettings.ReferenceLoopHandling
= Newtonsoft.Json.ReferenceLoopHandling.Ignore);
builder.Services.AddControllers()
.AddFluentValidation(options =>
{
options.RegisterValidatorsFromAssembly(Assembly.GetExecutingAssembly());
});
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
// Configure AutoMapper
builder.Services.ConfigureAutoMappers();
但我没有使用:AutoMapper,版本=13.0.0.0
请帮助解决错误
首先从参考中删除 Automapper 包,或卸载 AutoMapper ver-12.0.1 和 AutoMapper.Extensions.Microsoft.DependencyInjection ver-12.0.1
一旦删除,您应该从“包管理器控制台”安装它,在安装之前您需要选择项目,它会自动安装最新版本。
无需安装 - AutoMapper.Extensions.Microsoft.DependencyInjection 版本 12.0.1
同时安装 - Microsft.Extension.DepedencyInjection
在您的 DI 注入静态类中添加此服务添加任何一个,两者都在同一进程上工作
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
(或) services.AddAutoMapper(typeof(MappingProfile));
在 Program.cs 中注册您的 Automapper DI 注入服务
一旦完成所有构建并运行