The official release for 10.0 is here! In addition to the changes in the preview releases, there are a few additional changes.
Features
All Platforms
ApiVersionAttribute,MapToVersionAttribute, andAdvertiseApiVersionsAttributeall now have a constructor which can support the date format without being a string; for example,[ApiVersion(2026, 04, 01)]
ASP.NET Core OpenAPI
XmlCommentsTransformeris now resolved via DI, which allows it to be re-registered with a user-defined file path- Public types and members are now
virtualfor developer extensibility
Fixes
ASP.NET Core OpenAPI
- Fix comparison between entry and calling assembly (#1175)
- Ensure keyed services are registered with a lowercase key (#1176)
- Fix nested key service resolution (#1177)
- Implement
IKeyedServiceProviderwhen injectingApiVersion(#1178)
Breaking Changes
ASP.NET Core OpenAPI
- OpenAPI documents use
"enum": ["1.0"]instead of"default": "1.0"- This has a similar effect, but removes the free-form input when the value is bounded
- When optional, the enum value can still be deleted/removed
- Some UIs, such as Scalar, still provide a way to provide an enumerated value that isn't in the list
Release Notes
- Asp.Versioning.OData is being released as
rc.1because Microsoft.AspNetCore.OData is only atpreview.2 - Asp.Versioning.OpenAPI is being released as
rc.1pending the outcome of dotnet/aspnetcore#66408- If the package can be released without requiring the explicit use of Reflection, that is the preference
- No additional changes are planned unless bugs are reported
Feedback
Thanks to the contributors on this release whether it was code contributions or test driving the previews. Special thanks to @sander1095 for being a strong advocate and helping to bring even more visibility to the project.