Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
"version": "2026.1.4",
"version": "2026.2.0-rc01",
"commands": [
"jb"
],
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ jobs:
8.0.*
9.0.*
10.0.*
- name: Setup .NET 11 Preview
uses: actions/setup-dotnet@v5
with:
dotnet-version: 11.0.*
dotnet-quality: preview
- name: Show installed versions
shell: pwsh
run: |
Expand Down Expand Up @@ -165,6 +170,11 @@ jobs:
8.0.*
9.0.*
10.0.*
- name: Setup .NET 11 Preview
uses: actions/setup-dotnet@v5
with:
dotnet-version: 11.0.*
dotnet-quality: preview
- name: Git checkout
uses: actions/checkout@v7
with:
Expand Down Expand Up @@ -223,6 +233,11 @@ jobs:
8.0.*
9.0.*
10.0.*
- name: Setup .NET 11 Preview
uses: actions/setup-dotnet@v5
with:
dotnet-version: 11.0.*
dotnet-quality: preview
- name: Git checkout
uses: actions/checkout@v7
with:
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ jobs:
8.0.*
9.0.*
10.0.*
- name: Setup .NET 11 Preview
uses: actions/setup-dotnet@v5
with:
dotnet-version: 11.0.*
dotnet-quality: preview
- name: Git checkout
uses: actions/checkout@v7
with:
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/qodana.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ jobs:
8.0.*
9.0.*
10.0.*
- name: Setup .NET 11 Preview
uses: actions/setup-dotnet@v5
with:
dotnet-version: 11.0.*
dotnet-quality: preview
- name: Git checkout
uses: actions/checkout@v7
with:
Expand Down
15 changes: 15 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
<OpenApiPreviewNumber>9</OpenApiPreviewNumber>
</PropertyGroup>

<PropertyGroup>
<!-- .NET 11 Preview -->
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
</PropertyGroup>

<PropertyGroup>
<NoWarn>
<!--
Expand Down Expand Up @@ -65,4 +70,14 @@
<ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2026.2.*" PrivateAssets="All" />
</ItemGroup>

<ItemGroup>
<!--
Workaround: Swashbuckle 11.x (used on net10.0/net11.0) was compiled against Microsoft.OpenApi 3.9.0.
CS1705 prevents compiling against a lower version, so we compile against 3.9.0 and overwrite
the output DLL with 3.7.0 at runtime. PackageDownload ensures 3.7.0 is in the NuGet cache.
See the UseOpenApi370AtRuntime target in Directory.Build.targets.
-->
<PackageDownload Include="Microsoft.OpenApi" Version="[3.7.0]" />
</ItemGroup>
</Project>
19 changes: 19 additions & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,4 +1,23 @@
<Project>
<!--
Workaround: Swashbuckle 11.x (used on net10.0/net11.0) was compiled against Microsoft.OpenApi 3.9.0, so
CS1705 prevents us from downgrading it at compile time. We compile against 3.9.0 and then overwrite
the output DLL with 3.7.0 so the runtime uses the desired version. The Exists() condition limits this
to executable/test projects (they copy transitive package DLLs to output; library projects don't).
PackageDownload in Directory.Build.props ensures the 3.7.0 DLL is present in the NuGet cache.
-->
<Target Name="UseOpenApi370AtRuntime" AfterTargets="Build"
Condition="('$(TargetFramework)' == 'net11.0' OR '$(TargetFramework)' == 'net10.0') AND Exists('$(OutputPath)Microsoft.OpenApi.dll')">
<PropertyGroup>
<_NuGetPackagesRoot Condition="'$(NUGET_PACKAGES)' != ''">$(NUGET_PACKAGES)</_NuGetPackagesRoot>
<_NuGetPackagesRoot Condition="'$(_NuGetPackagesRoot)' == '' AND '$(USERPROFILE)' != ''">$(USERPROFILE)/.nuget/packages</_NuGetPackagesRoot>
<_NuGetPackagesRoot Condition="'$(_NuGetPackagesRoot)' == '' AND '$(HOME)' != ''">$(HOME)/.nuget/packages</_NuGetPackagesRoot>
<_OpenApi370Dll>$(_NuGetPackagesRoot)/microsoft.openapi/3.7.0/lib/net8.0/Microsoft.OpenApi.dll</_OpenApi370Dll>
</PropertyGroup>
<Copy SourceFiles="$(_OpenApi370Dll)" DestinationFolder="$(OutputPath)" OverwriteReadOnlyFiles="true"
Condition="Exists('$(_OpenApi370Dll)')" />
</Target>

<Target Name="DisableCompileTimeOpenApiXmlGenerator" BeforeTargets="CoreCompile">
<ItemGroup>
<Analyzer Remove="@(Analyzer)" Condition="'%(Filename)' == 'Microsoft.AspNetCore.OpenApi.SourceGenerators'" />
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/Benchmarks.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<TargetFramework>net11.0</TargetFramework>
<ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>

Expand Down
36 changes: 32 additions & 4 deletions package-versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
<DemystifierFrozenVersion>0.4.1</DemystifierFrozenVersion>
<HumanizerFrozenVersion>2.14.1</HumanizerFrozenVersion>
<NewtonsoftJsonFrozenVersion>13.0.4</NewtonsoftJsonFrozenVersion>
<SwashbuckleFrozenVersion>10.2.3</SwashbuckleFrozenVersion>
<SwashbuckleFrozenVersion_NET8_9>10.2.3</SwashbuckleFrozenVersion_NET8_9>
<SwashbuckleFrozenVersion_NET10_11>*-pr.3786.*</SwashbuckleFrozenVersion_NET10_11>
<SystemTextRegularExpressionsFrozenVersion>4.3.1</SystemTextRegularExpressionsFrozenVersion>

<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
Expand All @@ -20,50 +21,77 @@
<GitHubActionsTestLoggerVersion>3.0.*</GitHubActionsTestLoggerVersion>
<InheritDocVersion>2.0.*</InheritDocVersion>
<KiotaVersion>2.*</KiotaVersion>
<MicrosoftApiServerVersion>10.0.*</MicrosoftApiServerVersion>
<MiniValidationVersion>0.10.*</MiniValidationVersion>
<NSwagApiClientVersion>14.7.*</NSwagApiClientVersion>
<NewtonsoftJsonVersion>13.0.*</NewtonsoftJsonVersion>
<PolyfillVersion>10.10.*</PolyfillVersion>
<ReadableExpressionsVersion>4.1.*</ReadableExpressionsVersion>
<ScalarAspNetCoreVersion>2.16.*</ScalarAspNetCoreVersion>
<SwashbuckleVersion>10.*-*</SwashbuckleVersion>
<SystemTextJsonVersion>10.0.*</SystemTextJsonVersion>
<SwashbuckleVersion_NET8_9>10.*-*</SwashbuckleVersion_NET8_9>
<TestSdkVersion>18.8.*</TestSdkVersion>
<XunitVersion>2.9.*</XunitVersion>
<XunitVisualStudioVersion>3.1.*</XunitVisualStudioVersion>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)' == 'net11.0'">
<!-- Published dependencies (only update on major version change) -->
<EntityFrameworkCoreFrozenVersion>11.0.*-*</EntityFrameworkCoreFrozenVersion>
<SwashbuckleFrozenVersion>$(SwashbuckleFrozenVersion_NET10_11)</SwashbuckleFrozenVersion>

<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
<AspNetCoreVersion>11.0.*-*</AspNetCoreVersion>
<EntityFrameworkCoreVersion>11.0.*-*</EntityFrameworkCoreVersion>
<MicrosoftApiServerVersion>11.0.*-*</MicrosoftApiServerVersion>
<PomeloEntityFrameworkCoreVersion>
<!-- Temporary workaround: Unstable EF Core 10 package for Pomelo.EntityFrameworkCore.MySql is not available yet. -->
9.0.*
</PomeloEntityFrameworkCoreVersion>
<SwashbuckleVersion>$(SwashbuckleFrozenVersion)</SwashbuckleVersion>
<SystemTextJsonVersion>11.0.*-*</SystemTextJsonVersion>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)' == 'net10.0'">
<!-- Published dependencies (only update on major version change) -->
<EntityFrameworkCoreFrozenVersion>10.0.0</EntityFrameworkCoreFrozenVersion>
<SwashbuckleFrozenVersion>$(SwashbuckleFrozenVersion_NET10_11)</SwashbuckleFrozenVersion>

<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
<AspNetCoreVersion>10.0.*</AspNetCoreVersion>
<EntityFrameworkCoreVersion>10.0.*-*</EntityFrameworkCoreVersion>
<MicrosoftApiServerVersion>11.0.*-*</MicrosoftApiServerVersion>
<PomeloEntityFrameworkCoreVersion>
<!-- Temporary workaround: Unstable EF Core 10 package for Pomelo.EntityFrameworkCore.MySql is not available yet. -->
9.0.*
</PomeloEntityFrameworkCoreVersion>
<SwashbuckleVersion>$(SwashbuckleFrozenVersion)</SwashbuckleVersion>
<SystemTextJsonVersion>10.0.*</SystemTextJsonVersion>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)' == 'net9.0'">
<!-- Published dependencies (only update on major version change) -->
<EntityFrameworkCoreFrozenVersion>N/A</EntityFrameworkCoreFrozenVersion>
<SwashbuckleFrozenVersion>$(SwashbuckleFrozenVersion_NET8_9)</SwashbuckleFrozenVersion>

<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
<AspNetCoreVersion>9.0.*</AspNetCoreVersion>
<EntityFrameworkCoreVersion>9.0.*</EntityFrameworkCoreVersion>
<MicrosoftApiServerVersion>10.0.*</MicrosoftApiServerVersion>
<PomeloEntityFrameworkCoreVersion>$(EntityFrameworkCoreVersion)</PomeloEntityFrameworkCoreVersion>
<SwashbuckleVersion>$(SwashbuckleVersion_NET8_9)</SwashbuckleVersion>
<SystemTextJsonVersion>10.0.*</SystemTextJsonVersion>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)' == 'net8.0'">
<!-- Published dependencies (only update on major version change) -->
<EntityFrameworkCoreFrozenVersion>8.0.0</EntityFrameworkCoreFrozenVersion>
<SwashbuckleFrozenVersion>$(SwashbuckleFrozenVersion_NET8_9)</SwashbuckleFrozenVersion>

<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
<AspNetCoreVersion>8.0.*</AspNetCoreVersion>
<EntityFrameworkCoreVersion>8.0.*</EntityFrameworkCoreVersion>
<MicrosoftApiServerVersion>10.0.*</MicrosoftApiServerVersion>
<PomeloEntityFrameworkCoreVersion>$(EntityFrameworkCoreVersion)</PomeloEntityFrameworkCoreVersion>
<SwashbuckleVersion>$(SwashbuckleVersion_NET8_9)</SwashbuckleVersion>
<SystemTextJsonVersion>10.0.*</SystemTextJsonVersion>
</PropertyGroup>
</Project>
4 changes: 2 additions & 2 deletions src/Examples/DapperExample/DapperExample.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
2 changes: 1 addition & 1 deletion src/Examples/GettingStarted/GettingStarted.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
<OpenApiGenerateDocumentsOnBuild>true</OpenApiGenerateDocumentsOnBuild>
<OpenApiDocumentsDirectory>GeneratedSwagger</OpenApiDocumentsDirectory>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<TargetFramework>net11.0</TargetFramework>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<!-- TargetFrameworks does not work, see https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/2706 -->
<TargetFramework>net10.0</TargetFramework>
<TargetFramework>net11.0</TargetFramework>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
2 changes: 1 addition & 1 deletion src/Examples/ReportsExample/ReportsExample.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\..\package-versions.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0;netstandard1.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net8.0;netstandard1.0</TargetFrameworks>
<IsPackable>true</IsPackable>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<RootNamespace>JsonApiDotNetCore</RootNamespace>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net8.0</TargetFrameworks>
<IsPackable>true</IsPackable>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<OpenApiGenerateDocuments>false</OpenApiGenerateDocuments>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net8.0</TargetFrameworks>
<IsPackable>true</IsPackable>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<OpenApiGenerateDocuments>false</OpenApiGenerateDocuments>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net8.0</TargetFrameworks>
<IsPackable>true</IsPackable>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<OpenApiGenerateDocuments>false</OpenApiGenerateDocuments>
Expand Down
2 changes: 1 addition & 1 deletion src/JsonApiDotNetCore/JsonApiDotNetCore.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net8.0</TargetFrameworks>
<IsPackable>true</IsPackable>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion test/AnnotationTests/AnnotationTests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;netstandard2.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0;netstandard2.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\package-versions.props" />
Expand Down
2 changes: 1 addition & 1 deletion test/DapperTests/DapperTests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\package-versions.props" />
Expand Down
4 changes: 2 additions & 2 deletions test/DiscoveryTests/DiscoveryTests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\package-versions.props" />
Expand Down
7 changes: 7 additions & 0 deletions test/DiscoveryTests/ServiceDiscoveryFacadeTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,13 @@ public override DbContextOptions WithExtension<TExtension>(TExtension extension)
{
return this;
}

#if NET11_0_OR_GREATER
public override DbContextOptions WithoutExtension<TExtension>()
{
return this;
}
#endif
}
}
}
2 changes: 1 addition & 1 deletion test/JsonApiDotNetCoreTests/JsonApiDotNetCoreTests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\package-versions.props" />
Expand Down
2 changes: 1 addition & 1 deletion test/MultiDbContextTests/MultiDbContextTests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\package-versions.props" />
Expand Down
2 changes: 1 addition & 1 deletion test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>

<Import Project="..\..\package-versions.props" />
Expand Down
Loading
Loading