This CS8795 in Visual Studio is caused by Mapperly source-generator output not being picked up by VS/IntelliSense, so VS thinks your public override partial ... methods have no implementation part (even though dotnet build/run can still succeed sometimes). In ABP v10, your mapper class shape is correct; the problem is the generator not running/being loaded by the IDE consistently.
Fix it by ensuring Mapperly’s source generator is referenced as an analyzer in the project which contains the [Mapper] classes (typically your *.Application project), and by enabling compiler-generated files so VS can “see” them.
AcessorioToAcessorioDtoMapper etc.:<ItemGroup>
<PackageReference Include="Volo.Abp.Mapperly" Version="10.0.2" />
<PackageReference Include="Riok.Mapperly" Version="*" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="$(NuGetPackageRoot)riok.mapperly\*\analyzers\dotnet\cs\Riok.Mapperly.Generators.dll" />
</ItemGroup>
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\Generated</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
.vs, bin, obj, reopen, then Rebuild.After rebuild, you should see generated files under:
obj\Debug\net10.0\Generated\...
and CS8795 should disappear.
In your ABP module (Application/Blazor/Host as appropriate), ensure you are using Mapperly registration (not AutoMapper):
using Volo.Abp.Mapperly;
[DependsOn(typeof(AbpMapperlyModule))]
public class GestaoComercialApplicationModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddMapperlyObjectMapper<GestaoComercialApplicationModule>();
// If you want Mapperly as the default provider globally:
// context.Services.AddMapperlyObjectMapper();
}
}
If you still have Volo.Abp.AutoMapper referenced anywhere, remove it from the projects you migrated, otherwise ABP may still try to resolve mappings via AutoMapper in some contexts.
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
What you’re seeing (UI still saying “at least 6 characters” after you set Required length = 8 in the Identity Settings page) is almost always client-side validation text being cached / hardcoded in the UI, while the server-side rule is already updated (or will be updated after cache refresh).
Fix it definitively with these steps (do all):
Hard refresh / clear browser storage
Restart the app and clear distributed cache (if enabled)
Confirm the server-side password rule is really 8
Check setting scope (Host vs Tenant)
If it’s Angular UI: update the Identity config package
yarn upgrade @volo/abp.ng.identity.configSources (verified):
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
In ABP, IdentityOptions can be configured in your module, but password rules can also be overridden at runtime by ABP’s Setting System. So if your Configure<IdentityOptions>(...) change “doesn’t work”, it’s typically because the effective password policy is coming from Identity settings (possibly tenant-specific), not from your hardcoded options.
Do this to make it work definitively:
ConfigureServices):using Microsoft.AspNetCore.Identity;
using Volo.Abp.Modularity;
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<IdentityOptions>(options =>
{
options.Password.RequiredLength = 8;
});
}
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity.Settings;
using Volo.Abp.Settings;
public class PasswordPolicyChanger : ITransientDependency
{
private readonly ISettingManager _settingManager;
public PasswordPolicyChanger(ISettingManager settingManager)
{
_settingManager = settingManager;
}
public async Task SetMinLengthForCurrentTenantAsync()
{
await _settingManager.SetForCurrentTenantAsync(
IdentitySettingNames.Password.RequiredLength,
"8"
);
}
}
If you want it globally (host side) use:
SetGlobalAsync(...) instead of SetForCurrentTenantAsync(...).
Result: once you set IdentitySettingNames.Password.RequiredLength to 8 for the relevant scope (tenant/global/user), password validation will enforce length 8 even if your module option is different—because settings take precedence.
https://abp.io/docs/latest/modules/identity
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
.Pro suffix:abp get-source Volo.Abp.LeptonXTheme
--version:abp get-source Volo.Abp.LeptonXTheme --version 10.0.2
5.1.0-rc2, use the CLI approach above (it bypasses Suite’s module version dropdown limitation) and it should let you fetch the version you need, as long as your license/subscription allows it.10.0.2 via CLI (e.g., “No module was found” or server error), that’s typically a commercial account/license entitlement or backend issue; in that case, please contact ABP support via the contact form.Links:
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Dockerfile.local) and it uses nginx to serve the built dist output.Example (as shown in ABP docs):
FROM nginx:alpine-slim
WORKDIR /app
COPY dist/BookStore /usr/share/nginx/html
COPY dynamic-env.json /usr/share/nginx/html
COPY /nginx.conf /etc/nginx/conf.d/default.conf
Notes for ABP Angular:
dynamic-env.json is used for runtime environment overriding (so you can change env without rebuilding the image).nginx.conf maps /getEnvConfig to serve that JSON file.Build & image creation (manual):
yarnnpm run build:proddocker build -f Dockerfile.local -t mycompany/myapp-angular:latest .This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
dotnet tool install/update expects (it can manifest exactly as: “Settings file 'DotnetToolSettings.xml' was not found in the package.”).dotnet tool uninstall -g Volo.Abp.Cli
dotnet tool uninstall -g Volo.Abp.Studio.Cli
%USERPROFILE%\.dotnet\tools\.store\volo.abp.studio.cli%USERPROFILE%\.dotnet\tools\.store\volo.abp.cli (if exists)dotnet tool install -g Volo.Abp.Studio.Cli
abp --version
Sometimes a specific published version can have packaging/metadata issues. Pinning avoids “latest” until the fixed package is pulled:
dotnet tool install -g Volo.Abp.Studio.Cli --version <x.y.z>
Volo.Abp.Studio.Cli, and it replaced the legacy Volo.Abp.Cli in v8.2+; having both installed can create confusing outcomes, so remove the legacy one first.Links (validated):
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
(Empty response because the question is not in English.)
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
options.IntrospectAccessToken() on the cookie scheme will indeed trigger a remote /connect/introspect call during cookie validation on every request that hits the authentication middleware. In Blazor Server that can be dozens of requests during initial load (static files, _blazor endpoints, negotiate, etc.), so your observation about the performance impact is valid.options.IsDynamicClaimsEnabled = true + app.UseDynamicClaims()), then you already have a per-request “is session still valid?” style check (via ABP’s dynamic-claims pipeline + Identity session integration). Keeping token introspection on top typically becomes redundant and expensive in this setup.Recommended action (what to change in your app): remove introspection from the UI cookie scheme
.AddCookie("Cookies", options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(365);
// Remove this to avoid /connect/introspect on every request:
// options.IntrospectAccessToken();
})
Why this is safe in the default ABP setup you described
If you still need introspection for a specific security requirement, don’t apply it globally to the cookie scheme in a request-heavy UI; apply it only where needed (otherwise it will run for static assets too).
Link checked:
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
This is a known ABP Studio code-generation limitation/bug in Studio 2.1.9 for solutions that were migrated from AutoMapper to Mapperly: during regeneration, Studio fails to recognize the existing Mapperly mapper blocks in *ApplicationMappers.cs and appends new mapper classes instead of updating/reusing the existing ones.
[Mapper] classes for the same (TSource, TDestination) pair → Mapperly generator throws CS8785 (Sequence contains more than one element) and then many follow-up partial-method errors.Workaround (safe + minimal changes):
*ApplicationMappers.cs.MapperBase<TSource, TDestination> (or TwoWayMapperBase<,>) for each mapping pair across the project.s), you still must delete one of them—the Mapperly failure is about duplicated mapping pairs, not just class names.About .Extended files after feature removal:
.Extended files..Extended files as manual code: after regeneration, remove/adjust overrides and calls to the deleted methods, or revert those .Extended files too (depending on what you want to keep).Best next step (so this can be fixed):
ApplicationMappers.cs diff showing the duplicated mapper blocks(Your migration-guide link is reachable and matches the scenario you described: https://abp.io/docs/10.0/release-info/migration-guides/AutoMapper-To-Mapperly)
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Please contact us at https://abp.io/contact so the team can help you complete the purchase and add the additional developer license (they can also check why the card transaction is failing on the payment side).
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.