Important
An nswag.json without an explicit runtime field now defaults to Net100 instead of Net80.
.NET 8 reached end of life on 2026-11-10, so the default moved to the active LTS. A document that omits runtime and is executed with $(NSwagExe_Net80) or nswag.cmd /runtime:net80 now fails with:
InvalidOperationException: The specified runtime in the document (Net100) differs
from the current process runtime (Net80).
Either pin the runtime in the document ("runtime": "Net80") or move to $(NSwagExe_Net100) / /runtime:Net100. Documents that already specify runtime are unaffected.
.NET 11 support
.NET 11 reached GA on 2026-11-10 and is now a fully supported NSwag runtime.
Runtime support is additive — net8.0, net9.0, net10.0 and net11.0 all ship. Nothing was removed, so every existing NSwagExe_* property and /runtime: value keeps working.
$(NSwagExe_Net110)and$(NSwagDir_Net110)inNSwag.MSBuild/runtime:Net110in the command line tool, thenswagNPM package (the legacy--core 11.0form also works) and NSwagStudio- A
Net110folder in the MSBuildtools/layout and in the NPM package
NJsonSchema v11.6.2 (potentially breaking changes)
This release bundles NJsonSchema v11.6.2 and Namotion.Reflection v3.5.1. Two changes there can affect generated output:
- Swagger2 documents: properties that are both required and nullable now emit
x-nullable: trueinstead of silently losing their declared nullability (NJsonSchema#1931). This applies when the property is marked required by a presence-only marker — the C#requiredkeyword,[JsonRequired],[DataMember(IsRequired = true)]or NewtonsoftRequired.AllowNull.[Required]from DataAnnotations is unaffected. C# clients generated from such documents may now produce nullable types where they previously produced non-nullable ones. UseRequiredKeyword = true: default-value initializers are now suppressed only on the properties that actually receive therequiredkeyword, so optional properties regain their initializers (NJsonSchema#1926). The default (UseRequiredKeyword = false) is unaffected.
New C# generator settings also become available: IntegerType, AdditionalPropertiesValueType and PropertyAttributeFactory. See the NJsonSchema v11.6.2 release notes for the full list.
Dependency and security updates
Packages carrying known vulnerability advisories moved to the current servicing release of their line:
Microsoft.AspNetCore.*fornet462/netstandard2.0: 2.3.0 (Kestrel.Core 2.3.6) → 2.3.14Microsoft.AspNetCore.OpenApiand.TestHost: 8.0.34, 9.0.23, 10.0.15 and 11.0.0 per target framework- Build-only:
System.Security.Cryptography.Xmland.Pkcs→ 10.0.15
Other changes
- The release binaries (
NSwag.zipandNSwagStudio.msi) are now attached to the GitHub release automatically by the tagged build. - A hang in project metadata lookup was fixed:
dotnet msbuild --getPropertyoutput was read only after the process exited, which could deadlock, and MSBuild worker nodes kept for reuse could hold the pipes open indefinitely.
What's Changed
- Fix development build dependencies and TypeScript test compiler by @RicoSuter in #5400
- docs: add general pull request template by @RicoSuter in #5401
- Use NuGet trusted publishing instead of a stored API key by @RicoSuter in #5418
- docs: add AGENTS.md with repository instructions for AI coding agents by @RicoSuter in #5420
- Add .NET 11 support (v14.8.0) by @RicoSuter in #5419
Full Changelog: v14.7.1...v14.8.0