<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia" -->

---
title: API Versioning in ASP.NET Core - The .NET 10 Guide
description: placeholder
canonical: https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: API Versioning in ASP.NET Core - The .NET 10 Guide | daily.dev
og:description: placeholder
og:url: https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia
og:image: https://api.daily.dev/og/posts/TUk1MRKIA.png
og:image:alt: API Versioning in ASP.NET Core - The .NET 10 Guide
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API Versioning in ASP.NET Core - The .NET 10 Guide

**[Code with Mukesh](https://daily.dev/sources/codewithmukesh)** · [@iammukeshm](https://daily.dev/iammukeshm) · 23 min read · 9 upvotes · 0 comments

## Summary

placeholder

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://codewithmukesh.com/blog/api-versioning-in-aspnet-core>

## Questions this post answers

### What NuGet package should I use for API versioning in .NET 10 instead of Microsoft.AspNetCore.Mvc.Versioning?

Use the Asp.Versioning package family at version 10.2, not Microsoft.AspNetCore.Mvc.Versioning, which is the pre-rename identity of the same project renamed at v6.0. Install Asp.Versioning.Http 10.2.2 for Minimal APIs or Asp.Versioning.Mvc 10.2.1 for controllers, plus Asp.Versioning.Mvc.ApiExplorer 10.2.1 and Asp.Versioning.OpenApi 10.2.2, which is now generally available rather than a release candidate.

_Teams upgrading versioning packages can track dependency renames like this one on daily.dev before a build breaks._

### How do I remove a field from an API response without creating a new API version in ASP.NET Core?

As of Asp.Versioning 10.2, annotate the property with [VisibleInApiVersion] and a version range in NuGet interval notation, such as [VisibleInApiVersion("[1.0,2.0)")] to serve a field to v1 but not v2. The library filters the member out of responses, out of the generated OpenAPI schema for that version, and out of request binding, though hidden members on input are rejected with a 400 rather than silently ignored.

_Developers weighing field-level versus endpoint-level versioning can follow trade-offs like this on daily.dev._

### Why does my build fail with AV0012, AV0018, or AV0019 after upgrading Asp.Versioning?

Asp.Versioning 10.2 ships 31 Roslyn analyzers enabled by default, and AV0012, AV0018, and AV0019 are configured as errors rather than warnings. They arrive transitively through Asp.Versioning.Abstractions and Asp.Versioning.Http, so there is no package to remove; fix the underlying configuration or disable the whole set with the MSBuild property EnableApiVersioningAnalyzers set to false, since ExcludeAssets="analyzers" does not work.

_Anyone hit by a surprise build break after a dependency upgrade can find fixes like this one via daily.dev._

## Similar posts on daily.dev

- [Combining API versioning with OpenAPI in .NET 10 applications](https://daily.dev/posts/combining-api-versioning-with-openapi-in-net-10-applications-gmga4jjr0) · ASP.NET Blog · 25 upvotes · 0 comments
- [ASP.NET Core in .NET 10: Major Updates Across Blazor, APIs, and OpenAPI](https://daily.dev/posts/asp-net-core-in-net-10-major-updates-across-blazor-apis-and-openapi-pt3fiswfo) · InfoQ · 17 upvotes · 0 comments
- [What’s New in ASP.NET Core 10 for .NET 10: Key Features and Enhancements](https://daily.dev/posts/what-s-new-in-asp-net-core-10-for-net-10-key-features-and-enhancements-zal4icrde) · Syncfusion · 17 upvotes · 1 comments
- [.NET 5 to 10: Key Features Introduced in Every Release](https://daily.dev/posts/net-5-to-10-key-features-introduced-in-every-release-nb2ddspjl) · We Are .NET · 8 upvotes · 0 comments
- [.NET 10: What’s New for Authentication and Authorization](https://daily.dev/posts/net-10-what-s-new-for-authentication-and-authorization-0mnjaiuqi) · Auth0 · 82 upvotes · 0 comments

---

Tags: [#.net](https://daily.dev/tags/.net), [#aspnet](https://daily.dev/tags/aspnet)

[View this post on daily.dev](https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"API Versioning in ASP.NET Core - The .NET 10 Guide","url":"https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia"},"datePublished":"2026-08-20T04:02:03.401Z","dateModified":"2026-09-13T19:00:18.567Z","description":"placeholder","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f4dd39bab265ecd83bcc55f56050525b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f4dd39bab265ecd83bcc55f56050525b?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Code with Mukesh","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Person","name":"Mukesh Murugan","url":"https://daily.dev/iammukeshm","image":"https://lh3.googleusercontent.com/a-/AFdZucr2UBIpOeVTWohK8XKuXPOutNG6hgyQMz7CYj7LEA=s100","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":800}},"commentCount":0,"discussionUrl":"https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":9},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":".net,aspnet","timeRequired":"PT23M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Code with Mukesh","item":"https://daily.dev/sources/codewithmukesh"},{"@type":"ListItem","position":3,"name":"API Versioning in ASP.NET Core - The .NET 10 Guide"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/api-versioning-in-asp-net-core---the-net-10-guide-tuk1mrkia#faq","mainEntity":[{"@type":"Question","name":"What NuGet package should I use for API versioning in .NET 10 instead of Microsoft.AspNetCore.Mvc.Versioning?","acceptedAnswer":{"@type":"Answer","text":"Use the Asp.Versioning package family at version 10.2, not Microsoft.AspNetCore.Mvc.Versioning, which is the pre-rename identity of the same project renamed at v6.0. Install Asp.Versioning.Http 10.2.2 for Minimal APIs or Asp.Versioning.Mvc 10.2.1 for controllers, plus Asp.Versioning.Mvc.ApiExplorer 10.2.1 and Asp.Versioning.OpenApi 10.2.2, which is now generally available rather than a release candidate. Teams upgrading versioning packages can track dependency renames like this one on daily.dev before a build breaks."}},{"@type":"Question","name":"How do I remove a field from an API response without creating a new API version in ASP.NET Core?","acceptedAnswer":{"@type":"Answer","text":"As of Asp.Versioning 10.2, annotate the property with [VisibleInApiVersion] and a version range in NuGet interval notation, such as [VisibleInApiVersion(\"[1.0,2.0)\")] to serve a field to v1 but not v2. The library filters the member out of responses, out of the generated OpenAPI schema for that version, and out of request binding, though hidden members on input are rejected with a 400 rather than silently ignored. Developers weighing field-level versus endpoint-level versioning can follow trade-offs like this on daily.dev."}},{"@type":"Question","name":"Why does my build fail with AV0012, AV0018, or AV0019 after upgrading Asp.Versioning?","acceptedAnswer":{"@type":"Answer","text":"Asp.Versioning 10.2 ships 31 Roslyn analyzers enabled by default, and AV0012, AV0018, and AV0019 are configured as errors rather than warnings. They arrive transitively through Asp.Versioning.Abstractions and Asp.Versioning.Http, so there is no package to remove; fix the underlying configuration or disable the whole set with the MSBuild property EnableApiVersioningAnalyzers set to false, since ExcludeAssets=\"analyzers\" does not work. Anyone hit by a surprise build break after a dependency upgrade can find fixes like this one via daily.dev."}}]}
```

