Skip to content

Commit 5c0a65a

Browse files
Upgrade to .NET 10.0 with updated NuGet packages
Co-authored-by: BenjaminMichaelis <[email protected]>
1 parent 69f906d commit 5c0a65a

File tree

11 files changed

+42
-26
lines changed

11 files changed

+42
-26
lines changed

Directory.Build.props

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
<Project>
22
<PropertyGroup>
33
<Nullable>enable</Nullable>
4-
<LangVersion>12</LangVersion>
4+
<LangVersion>13</LangVersion>
55
<AnalysisMode>Recommended</AnalysisMode>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<PreserveCompilationContext>true</PreserveCompilationContext>
88
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
99
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
10+
<!-- CA1873: Suppress logging performance analyzer in .NET 10 for minor perf gains -->
11+
<NoWarn>$(NoWarn);CA1873</NoWarn>
1012

1113
<!-- https://aka.ms/vs-build-acceleration -->
1214
<AccelerateBuildsInVisualStudio>True</AccelerateBuildsInVisualStudio>

Directory.Packages.props

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@
2626
<PackageVersion Include="HtmlAgilityPack" Version="1.11.72" />
2727
<PackageVersion Include="IntelliTect.Multitool" Version="1.5.3" />
2828
<PackageVersion Include="Mailjet.Api" Version="3.0.0" />
29-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="8.0.12" />
30-
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.12" />
31-
<PackageVersion Include="Microsoft.AspNetCore.Identity.UI" Version="8.0.12" />
32-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.12" />
33-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.11" />
34-
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.8.0" />
35-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
36-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.10" />
37-
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.10" />
38-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.10" />
29+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="10.0.0" />
30+
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.0" />
31+
<PackageVersion Include="Microsoft.AspNetCore.Identity.UI" Version="10.0.0" />
32+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="10.0.0" />
33+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.0" />
34+
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.14.0" />
35+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
36+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.0" />
37+
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.0" />
38+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.0" />
3939
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
4040
<PackageVersion Include="Microsoft.SemanticKernel" Version="1.60.0" />
4141
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.PgVector" Version="1.60.0-preview" />
4242
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
4343
<PackageVersion Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.21.0" />
44-
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
44+
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="10.0.0-rc.1.25458.5" />
4545
<PackageVersion Include="ModelContextProtocol" Version="0.3.0-preview.4" />
4646
<PackageVersion Include="ModelContextProtocol.AspNetCore" Version="0.3.0-preview.4" />
4747
<PackageVersion Include="Moq" Version="4.20.72" />

EssentialCSharp.Chat.Shared/EssentialCSharp.Chat.Common.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>net10.0</TargetFramework>
55
</PropertyGroup>
66

77
<ItemGroup>

EssentialCSharp.Chat.Tests/EssentialCSharp.Chat.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>net10.0</TargetFramework>
55
<IsPackable>false</IsPackable>
66
</PropertyGroup>
77

EssentialCSharp.Chat/EssentialCSharp.Chat.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net9.0</TargetFramework>
5+
<TargetFramework>net10.0</TargetFramework>
66
<Version>0.0.1</Version>
77
</PropertyGroup>
88

EssentialCSharp.Web.Tests/EssentialCSharp.Web.Tests.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>net10.0</TargetFramework>
55

66
<IsPackable>false</IsPackable>
77
<IsPublishable>false</IsPublishable>
88
<!--
99
CA1707, Identifiers should not contain underscores - we allow these in test names
10+
NU1902/NU1903, Suppress vulnerability warnings for transitive dependencies from design-time tools
1011
-->
11-
<NoWarn>$(NoWarn);CA1707</NoWarn>
12+
<NoWarn>$(NoWarn);CA1707;NU1902;NU1903</NoWarn>
1213
</PropertyGroup>
1314

1415
<ItemGroup>

EssentialCSharp.Web.Tests/WebApplicationFactory.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,33 @@ protected override void ConfigureWebHost(IWebHostBuilder builder)
1616
{
1717
builder.ConfigureServices(services =>
1818
{
19-
ServiceDescriptor? descriptor = services.SingleOrDefault(
20-
d => d.ServiceType ==
21-
typeof(DbContextOptions<EssentialCSharpWebContext>));
22-
19+
// Remove the existing DbContext and related services
20+
var descriptorType = typeof(DbContextOptions<EssentialCSharpWebContext>);
21+
var descriptor = services.SingleOrDefault(d => d.ServiceType == descriptorType);
2322
if (descriptor != null)
2423
{
2524
services.Remove(descriptor);
2625
}
2726

27+
// Remove all DbContextOptions related services to avoid EF Core 10 multiple provider error
28+
var allDbContextOptions = services.Where(d =>
29+
d.ServiceType.IsGenericType &&
30+
d.ServiceType.Name.Contains("DbContextOptions")).ToList();
31+
foreach (var desc in allDbContextOptions)
32+
{
33+
services.Remove(desc);
34+
}
35+
2836
_Connection = new SqliteConnection(SqlConnectionString);
2937
_Connection.Open();
3038

39+
// Add SQLite DbContext without using the global service provider
3140
services.AddDbContext<EssentialCSharpWebContext>(options =>
3241
{
3342
options.UseSqlite(_Connection);
34-
});
43+
// Disable service provider caching to avoid shared state in EF Core 10
44+
options.EnableServiceProviderCaching(false);
45+
}, ServiceLifetime.Scoped, ServiceLifetime.Scoped);
3546

3647
using ServiceProvider serviceProvider = services.BuildServiceProvider();
3748
using IServiceScope scope = serviceProvider.CreateScope();

EssentialCSharp.Web/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ WORKDIR /app
55
EXPOSE 8080
66
EXPOSE 8081
77

8-
FROM mcr.microsoft.com/dotnet/sdk:9.0.306 AS build
8+
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
99
ARG ACCESS_TO_NUGET_FEED=true
1010
ENV ACCESS_TO_NUGET_FEED=$ACCESS_TO_NUGET_FEED
1111
RUN sh -c "$(curl -fsSL https://aka.ms/install-artifacts-credprovider.sh)"

EssentialCSharp.Web/EssentialCSharp.Web.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
3+
<TargetFramework>net10.0</TargetFramework>
4+
<!-- NU1902/NU1903, Suppress vulnerability warnings for transitive dependencies from design-time tools -->
5+
<NoWarn>$(NoWarn);NU1902;NU1903</NoWarn>
46
</PropertyGroup>
57
<ItemGroup>
68
<PlaceholderChapterOneHtmlFile Include="$(ProjectDir)/Placeholders/Chapters/01/Pages/*.html" />

EssentialCSharp.Web/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ private static void Main(string[] args)
3232
// Only loopback proxies are allowed by default.
3333
// Clear that restriction because forwarders are enabled by explicit
3434
// configuration.
35-
options.KnownNetworks.Clear();
35+
options.KnownIPNetworks.Clear();
3636
options.KnownProxies.Clear();
3737
});
3838

0 commit comments

Comments
 (0)