Version: 15.2 Module: Asp.net core
We are trying to move to the new ASP.net due to some excellent new features. But the Automapper change is a major breaking change as we have a very large CustomMapper. Mapperly is great but not debug friendly as giving non specific errors, so we can not automate the custom mapper to mapperly conversion. We are forced to do it in small bits.
So the challenge now is what do we need to do to keep running automapper as we make the change? Currently, I get runtime errors while using our automapper.
ERROR 2026-04-29 03:25:12,911 [24 ] nostics.DeveloperExceptionPageMiddleware - An unhandled exception has occurred while executing the request. Castle.MicroKernel.Handlers.HandlerException: Can't create component 'Arch.Application.Ai.Chat.ChatAppService' as it has dependencies to be satisfied.
'Arch.Application.Ai.Chat.ChatAppService' is waiting for the following dependencies:
Service 'AutoMapper.IMapper' which was not registered.
Service 'Arch.Application.Ai.Chat.ChatTopicAppService' which was registered but is also waiting for dependencies. 'Arch.Application.Ai.Chat.ChatTopicAppService' is waiting for the following dependencies:
Service 'AutoMapper.IMapper' which was not registered.
at Castle.MicroKernel.Handlers.DefaultHandler.AssertNotWaitingForDependency() at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired, Burden& burden) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass6_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeNextResourceFilter() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Abp.AspNetZeroCore.Web.Authentication.JwtBearer.JwtTokenMiddleware.<>c__DisplayClass0_0.vPKn7WALnYlTAKFA1Te.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
20 Answer(s)
-
0
Hi @ayoyusuf
We have documentation available for the transition from AutoMapper to Mapperly; you can review it. Please feel free to contact us if you need any assistance.
If you specify a more particular part for the transition, we would be happy to assist you. You can share the CustomMapper details if you wish, or contact us regarding a specific issue. If you prefer not to share the CustomMapper details here, you can send an email to [email protected].
We can continue the Mapperly transition process through this ticket.
Thank you
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Typically upgrades have come with minimal issues in the history of ASP.NET Zero. Mapperly choice is a major breaking change. It is breaking too many old codes.
Most importantly, it is not doing well with nested objects requiring very long winding codes to get basic nested objects done. This is defeating the purpose of having object Mappings if we have to do such extensive codes, we can as well have custom map functions.
The main advantage is suppose to be compile time errors? well, got it working only to get strange application behaviours which we later traced to issues of some object properties being null or empty from mapperly maps.
Mapperly seems great for simple apps, Asp.net zero has been so great, enterprise systems and even fintechs have been built on it, a breaking change such as this is a potential major issue.
REQUESTS: Please have a quick relook and pending that time provide an easy guide to enable back and use AutoMapper for those that want to keep using the last abp.automapper till then or till when we have time to properly figure out a transition to a workable resolution.
N.B: We have an AI that can easily do the basic mapping, but this would still hit the brick wall of nested classes. now due to nested issues, its difficult having a prompt that then requires us to provide almost every dto so the AI can see all nested
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @ayoyusuf
If you prefer not to migrate to Mapperly at this stage, you can continue using the Abp.AutoMapper package. It is still supported on our side and remains a viable option for existing projects.
We understand your concerns regarding the transition. Mapperly introduces a compile time mapping approach, which can be beneficial in terms of performance and type safety, but it may also require more explicit configuration, especially for complex or deeply nested object graphs. This can feel like a regression compared to the more implicit conventions provided by AutoMapper.
For projects with extensive existing mappings, particularly in enterprise scale solutions, an immediate migration may not be practical. In such cases, continuing with AutoMapper is a reasonable and supported approach until you are ready to refactor incrementally.
Regarding your request, we can provide guidance on re enabling AutoMapper in newer versions. At a high level, this involves:
- Installing the Abp.AutoMapper package
- Replacing Mapperly module dependencies with AutoMapper equivalents
- Re registering your mapping profiles using the AutoMapper integration
If needed, we can assist you step by step based on your current version and project structure.
We also appreciate your feedback about nested mappings and runtime inconsistencies. This kind of input is valuable and will be considered as we continue improving the developer experience.
Thank you.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Yes, I will highly appreciate a step by step guide to enabling AutoMapper.
Current Version: 14.0
My project structure retains the default Asp.Net Zero structure as it makes upgrades easier.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @ayoyusuf
Sorry for the delay. We've reviewed your project and will share guidance on how to continue using AutoMapper as soon as possible. Thank you.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
I reported the same issue.
See if this helps. I am still trying to work through it myself.
https://support.aspnetzero.com/QA/Questions/12647/Migration-Help-to-152Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @ayoyusuf
Sorry for the delay. We've reviewed your project and conducted research on how to upgrade to the latest version with minimal changes to AutoMapper.
Required technical change:
<PackageReference Include="Abp.AutoMapper" Version="11.2.0" />Use this instead of
Abp.Mapperly.In the Core module:
using Abp.AutoMapper; #pragma warning disable CS0618 [DependsOn( typeof(ArchCoreSharedModule), typeof(AbpZeroCoreModule), typeof(AbpZeroLdapModule), typeof(AbpAutoMapperModule), typeof(AbpAspNetZeroCoreModule), typeof(AbpMailKitModule), typeof(AbpZeroCoreOpenIddictModule))] #pragma warning restore CS0618 public class ArchCoreModule : AbpModule { }In the Application module, the existing logic should remain as is:
using Abp.AutoMapper; public override void PreInitialize() { Configuration.Authorization.Providers.Add<AppAuthorizationProvider>(); Configuration.Modules.AbpAutoMapper() .Configurators.Add(CustomDtoMapper.CreateMappings); }Mappings should also remain inside
CustomDtoMapper:using AutoMapper; internal static class CustomDtoMapper { public static void CreateMappings(IMapperConfigurationExpression configuration) { configuration.CreateMap<Entity, EntityDto>(); configuration.CreateMap<CreateOrEditEntityDto, Entity>(); } }Note:
Abp.MapperlyModuleandAbpAutoMapperModuleshould not be used together. Both override theIObjectMapperimplementation. If the project will continue using AutoMapper, the Mapperly mapper classes introduced in the newer version should either not be merged or should be converted to their AutoMapperCreateMapequivalents. ExistingObjectMapper.Map<T>()usages will continue to work as-is.If there is any conflict on the mapper side, you will need to adjust the implementation to use AutoMapper instead.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi team ,
We are working on moving to ASP.NET Zero 15.3 / ABP 11.2.0 / .NET 10.
AutoMapper 15.0.1 (resolved via Abp.AutoMapper 11.2.0) has a high-severity DoS vulnerability — CVE-2026-32933. Patched in 15.1.3 and 16.1.1.
Can we safely pin AutoMapper to 15.1.1 or 16.1.1 in our Directory.Packages.props, or is there a planned Abp.AutoMapper update to address this?
I get you have moved in the direction of Mapperly but the amount of work that will take is beyond the scope we have at the minute. Likewise if there is no support further planned for your wrapper is there documentation available for those of us who decide paying up for automapper is easier than migrating at this time ?
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @KieranIrl
For ASP.NET Zero 15.3 / ASP.NET Boilerplate 11.2.x projects that still use
Abp.AutoMapper, the safest short-term workaround is to stay on the AutoMapper 15.x line and pin AutoMapper to a patched 15.x version, preferably15.1.3or later.We do not recommend forcing
AutoMapperto16.1.1as a simple transitive override at this point.16.xis a major AutoMapper upgrade and may also require updating related packages such asAutoMapper.Collection. It should only be used after a full compatibility test, or after we publish/test the correspondingAbp.AutoMapperdependency update.So the recommended workaround is:
<ItemGroup> <PackageVersion Include="AutoMapper" Version="15.1.3" /> </ItemGroup>If your project uses Central Package Management and this does not affect the transitive dependency, either enable NuGet transitive pinning or add an explicit PackageReference to AutoMapper in the project that uses Abp.AutoMapper. Please verify the final resolved version with:
dotnet list package --include-transitiveRegarding Mapperly: yes, Mapperly is our recommended direction for new generated code and future mapping work, but we understand that migrating an existing application from AutoMapper can be a significant effort. Existing projects are not expected to migrate immediately just to handle this CVE.
If you continue using AutoMapper 15+, please also note that AutoMapper now requires a license key. Since Abp.AutoMapper configures AutoMapper through ABP module configuration rather than services.AddAutoMapper, you can pass the license key like this:
public override void PreInitialize() { Configuration.Modules.AbpAutoMapper().Configurators.Add(cfg => { cfg.LicenseKey = "<your AutoMapper license key>"; }); }You can also read the license key from configuration or an environment variable instead of hardcoding it.
Thank you.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi,
Following up on the earlier advice to pin AutoMapper to 15.1.3 and set the licence key via PreInitialize(). We implemented this but there is an error still .,
Looks like that access to whatever method the abp package is using has been removed or limited ? Can you advise on a fix or solution?
ENVIRONMENT ABP / ANZ: 11.2.0 / 15.3 | AutoMapper: 15.1.3 | TFM: net10.0
THE PROBLEM
[10:47:09 ERR] Microsoft.Extensions.Hosting.Internal.Host Hosting failed to start System.MethodAccessException: Attempt by method 'Abp.AutoMapper.AbpAutoMapperModule.CreateMappings()' to access method 'AutoMapper.MapperConfiguration..ctor(System.Action1<AutoMapper.IMapperConfigurationExpression>)' failed. at Abp.AutoMapper.AbpAutoMapperModule.CreateMappings() at Abp.AutoMapper.AbpAutoMapperModule.PostInitialize() at Abp.Modules.AbpModuleManager.<>c.<StartModules>b__15_2(AbpModuleInfo module) at System.Collections.Generic.List1.ForEach(Action1 action) at Abp.Modules.AbpModuleManager.StartModules() at Abp.AbpBootstrapper.Initialize() at Abp.AspNetCore.AbpApplicationBuilderExtensions.InitializeAbp(IApplicationBuilder app) at Abp.AspNetCore.AbpApplicationBuilderExtensions.UseAbp(IApplicationBuilder app, Action1 optionsAction) at TCM.Web.Startup.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, IHttpContextAccessor accessor) in C:\Code\TCMRepo\aspnet-core\src\TCM.Web.Host\Startup\Startup.cs:line 392 at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args) at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags invokeAttr) at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token) at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List1 exceptions, Func3 operation) Unhandled exception. System.MethodAccessException: Attempt by method 'Abp.AutoMapper.AbpAutoMapperModule.CreateMappings()' to access method 'AutoMapper.MapperConfiguration..ctor(System.Action1<AutoMapper.IMapperConfigurationExpression>)' failed. at Abp.AutoMapper.AbpAutoMapperModule.CreateMappings() at Abp.AutoMapper.AbpAutoMapperModule.PostInitialize() at Abp.Modules.AbpModuleManager.<>c.<StartModules>b__15_2(AbpModuleInfo module) at System.Collections.Generic.List1.ForEach(Action1 action) at Abp.Modules.AbpModuleManager.StartModules() at Abp.AbpBootstrapper.Initialize() at Abp.AspNetCore.AbpApplicationBuilderExtensions.InitializeAbp(IApplicationBuilder app) at Abp.AspNetCore.AbpApplicationBuilderExtensions.UseAbp(IApplicationBuilder app, Action1 optionsAction) at TCM.Web.Startup.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, IHttpContextAccessor accessor) in C:\Code\TCMRepo\aspnet-core\src\TCM.Web.Host\Startup\Startup.cs:line 392 at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args) at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags invokeAttr) at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token) at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List1 exceptions, Func3 operation) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at TCM.Web.Startup.Program.Main(String[] args) in C:\Code\TCMRepo\aspnet-core\src\TCM.Web.Host\Startup\Program.cs:line 27 at TCM.Web.Startup.Program.<Main>(String[] args)CURRENT WORKAROUND Reverted to AutoMapper 14.0.0. Not ideal as its carrying a CVE that our sec team would prefer is dealt with .
Thanks Thomas Murphy
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi,
Following up on the earlier advice to pin AutoMapper to 15.1.3 and set the licence key via PreInitialize(). We implemented this but there is an error still .,
Looks like that access to whatever method the abp package is using has been removed or limited ? Can you advise on a fix or solution?
ENVIRONMENT ABP / ANZ: 11.2.0 / 15.3 | AutoMapper: 15.1.3 | TFM: net10.0
THE PROBLEM
[10:47:09 ERR] Microsoft.Extensions.Hosting.Internal.Host Hosting failed to start System.MethodAccessException: Attempt by method 'Abp.AutoMapper.AbpAutoMapperModule.CreateMappings()' to access method 'AutoMapper.MapperConfiguration..ctor(System.Action1<AutoMapper.IMapperConfigurationExpression>)' failed. at Abp.AutoMapper.AbpAutoMapperModule.CreateMappings() at Abp.AutoMapper.AbpAutoMapperModule.PostInitialize() at Abp.Modules.AbpModuleManager.<>c.<StartModules>b__15_2(AbpModuleInfo module) at System.Collections.Generic.List1.ForEach(Action1 action) at Abp.Modules.AbpModuleManager.StartModules() at Abp.AbpBootstrapper.Initialize() at Abp.AspNetCore.AbpApplicationBuilderExtensions.InitializeAbp(IApplicationBuilder app) at Abp.AspNetCore.AbpApplicationBuilderExtensions.UseAbp(IApplicationBuilder app, Action1 optionsAction) at TCM.Web.Startup.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, IHttpContextAccessor accessor) in C:\Code\TCMRepo\aspnet-core\src\TCM.Web.Host\Startup\Startup.cs:line 392 at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args) at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags invokeAttr) at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token) at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List1 exceptions, Func3 operation) Unhandled exception. System.MethodAccessException: Attempt by method 'Abp.AutoMapper.AbpAutoMapperModule.CreateMappings()' to access method 'AutoMapper.MapperConfiguration..ctor(System.Action1<AutoMapper.IMapperConfigurationExpression>)' failed. at Abp.AutoMapper.AbpAutoMapperModule.CreateMappings() at Abp.AutoMapper.AbpAutoMapperModule.PostInitialize() at Abp.Modules.AbpModuleManager.<>c.<StartModules>b__15_2(AbpModuleInfo module) at System.Collections.Generic.List1.ForEach(Action1 action) at Abp.Modules.AbpModuleManager.StartModules() at Abp.AbpBootstrapper.Initialize() at Abp.AspNetCore.AbpApplicationBuilderExtensions.InitializeAbp(IApplicationBuilder app) at Abp.AspNetCore.AbpApplicationBuilderExtensions.UseAbp(IApplicationBuilder app, Action1 optionsAction) at TCM.Web.Startup.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, IHttpContextAccessor accessor) in C:\Code\TCMRepo\aspnet-core\src\TCM.Web.Host\Startup\Startup.cs:line 392 at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args) at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags invokeAttr) at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token) at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List1 exceptions, Func3 operation) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at TCM.Web.Startup.Program.Main(String[] args) in C:\Code\TCMRepo\aspnet-core\src\TCM.Web.Host\Startup\Program.cs:line 27 at TCM.Web.Startup.Program.<Main>(String[] args)CURRENT WORKAROUND Reverted to AutoMapper 14.0.0. Not ideal as its carrying a CVE that our sec team would prefer is dealt with .
Thanks
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @KieranIrl
Thanks for the detailed stack trace. You are right; this is not a license-key configuration issue.
AutoMapper 15 changed the public
MapperConfigurationconstructor. The currentAbp.AutoMapperpackage still creates the configuration using the old one-argument constructor, so overriding/pinning AutoMapper to15.1.3can cause this runtimeMethodAccessException.So, with the current
Abp.AutoMapper 11.2.0package, pinning AutoMapper to15.1.3is not a safe workaround. Our earlier guidance was incomplete for this case.We need to update
Abp.AutoMapperitself to use the AutoMapper 15 API, whereMapperConfigurationis created with anILoggerFactory, and test it with the matchingAutoMapper.Collectionversion.- keep using the AutoMapper version currently supported by
Abp.AutoMapper; - if this is urgent, use a locally patched
Abp.AutoMapperbuild that createsMapperConfigurationwith the new AutoMapper 15 constructor and validates the compatibleAutoMapper.Collectionversion.
The AutoMapper license key configuration is still required for AutoMapper 15+, but it does not fix this constructor compatibility issue.
Thank you.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) - keep using the AutoMapper version currently supported by
-
0
Hi @oguzhanagir
Any updates on when an update to Abp.Automapper will arrive ?
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @KieranIrl
Thank you for following up, and we apologize for the earlier incomplete guidance.
We do not plan to release an AutoMapper 15-compatible update for the Abp.AutoMapper package. The package is deprecated and will remain on its currently supported AutoMapper version. ASP.NET Zero now uses Mapperly as its supported object-mapping integration, and AutoMapper's licensing changes in newer versions are also a factor in this direction.
Please do not override AutoMapper to version 15.x in a project that uses the current Abp.AutoMapper package. As you found, this is incompatible with the package and results in the MethodAccessException at startup.
If migrating to Mapperly is not currently feasible, maintaining a local fork or a custom AutoMapper integration compatible with your selected AutoMapper version is the available option. In that case, compatibility testing and AutoMapper licensing compliance would be your responsibility.
We recommend planning an incremental migration to Mapperly for new mappings and moving existing mappings over in stages.
Thank you for your understanding.
Best regards
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @AspnetZeroSupport Can you at least provide a patch in/with which it's still easy to switch to your last supported Abp.AutoMapper (as we gradually move to Mapperly or decide to Upgrade.) Without errors. The provided guide still throws errors.
This is such a breaking change, We would appreciate that such level of breaking change should be properly handled with a properly elongated transition option that does not feel like a hack considering you have customers with an enterprise production system reliant on your product which is the primary sales pitch of ASP.NET Zero.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @ayoyusuf
Thank you for the detailed feedback. We understand your concern, especially given the impact this change may have on enterprise production systems.
We have started working on this issue and will provide further information along with a proper fix or patch that supports a smoother transition. I will update you as soon as we have a concrete solution available.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
[oguzhanagir] said: Hi @ayoyusuf
Thank you for the detailed feedback. We understand your concern, especially given the impact this change may have on enterprise production systems.
We have started working on this issue and will provide further information along with a proper fix or patch that supports a smoother transition. I will update you as soon as we have a concrete solution available.
Hi oguzhanagir
Any update on this , we like many other customers are not in aposition to move everything to mapperly and are now living with a high cve warning showing up and being flagged ,
What is the timeline for this fix ?
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @KieranIrl
We will be publishing a detailed blog post very soon explaining how to switch from Mapperly to AutoMapper. This blog post will show you the steps to make a smooth transition. We will keep you informed here.
Thank you
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Kndly let us know the actual range of "very soon" so we can also plan versus checking daily for the last 3 weeks. Thanks.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi @ayoyusuf
Sorry for the inconvenience caused by having to check repeatedly over the last few weeks.
In the meantime, we’ve published a detailed guide on using AutoMapper after migrating to Mapperly, which may help with the transition:
https://aspnetzero.com/blog/using-automapper-after-migrating-to-mapperly
Thanks for your patience and understanding.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image)