Skip to content

Commit 67dfc99

Browse files
authored
Add .NET 10.0 and C# 14 support across projects (#256)
Upgraded `TargetFramework` and `TargetFrameworks` to include `.NET 10.0` in multiple project files. Added `<LangVersion>14</LangVersion>` to enable C# 14 features. Updated `global.json` to use .NET SDK version `10.0.100`. Upgraded `Nuke.Common` to version `10.0.0` and `NuGet.Packaging` to version `7.0.1` where applicable. Introduced conditional `ItemGroup` elements in `NukeBuildHelpers.csproj` for framework-specific dependencies. Added `<UseSharedCompilation>false</UseSharedCompilation>` to disable shared compilation. Reformatted `<PropertyGroup>` and `<ItemGroup>` elements for consistency and clarity without functional changes. These changes ensure compatibility with the latest frameworks and improve maintainability.
1 parent 27e8fa1 commit 67dfc99

File tree

4 files changed

+42
-30
lines changed

4 files changed

+42
-30
lines changed
Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,31 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<Nullable>enable</Nullable>
3+
<PropertyGroup>
4+
<LangVersion>14</LangVersion>
5+
<TargetFramework>net10.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
<UseSharedCompilation>false</UseSharedCompilation>
79

8-
<IsPackable>false</IsPackable>
9-
<IsTestProject>true</IsTestProject>
10-
</PropertyGroup>
10+
<IsPackable>false</IsPackable>
11+
<IsTestProject>true</IsTestProject>
12+
</PropertyGroup>
1113

12-
<ItemGroup>
13-
<PackageReference Include="GitHubActionsTestLogger" Version="3.0.1">
14-
<PrivateAssets>all</PrivateAssets>
15-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
16-
</PackageReference>
17-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
18-
<PackageReference Include="xunit" Version="2.9.3" />
19-
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
20-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
21-
<PrivateAssets>all</PrivateAssets>
22-
</PackageReference>
23-
<PackageReference Include="coverlet.collector" Version="6.0.4">
24-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
25-
<PrivateAssets>all</PrivateAssets>
26-
</PackageReference>
27-
</ItemGroup>
14+
<ItemGroup>
15+
<PackageReference Include="GitHubActionsTestLogger" Version="3.0.1">
16+
<PrivateAssets>all</PrivateAssets>
17+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
18+
</PackageReference>
19+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
20+
<PackageReference Include="xunit" Version="2.9.3" />
21+
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
22+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
23+
<PrivateAssets>all</PrivateAssets>
24+
</PackageReference>
25+
<PackageReference Include="coverlet.collector" Version="6.0.4">
26+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
27+
<PrivateAssets>all</PrivateAssets>
28+
</PackageReference>
29+
</ItemGroup>
2830

2931
</Project>

NukeBuildHelpers/NukeBuildHelpers.csproj

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

33
<PropertyGroup>
4-
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
4+
<LangVersion>14</LangVersion>
5+
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
56
<ImplicitUsings>enable</ImplicitUsings>
6-
<LangVersion>13</LangVersion>
77
<Nullable>enable</Nullable>
8+
<UseSharedCompilation>false</UseSharedCompilation>
89
<GenerateDocumentationFile>true</GenerateDocumentationFile>
910
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
1011
</PropertyGroup>
@@ -26,8 +27,15 @@
2627
<None Include="..\README.md" Pack="true" PackagePath="" />
2728
</ItemGroup>
2829

29-
<ItemGroup>
30+
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0' OR '$(TargetFramework)' == 'net9.0'">
3031
<PackageReference Include="Nuke.Common" Version="9.0.4" />
32+
</ItemGroup>
33+
34+
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
35+
<PackageReference Include="Nuke.Common" Version="10.0.0" />
36+
</ItemGroup>
37+
38+
<ItemGroup>
3139
<PackageReference Include="Semver" Version="3.0.0" />
3240
<PackageReference Include="Sharprompt" Version="3.0.1" />
3341
<PackageReference Include="YamlDotNet" Version="16.3.0" />

build/_build.csproj

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

33
<PropertyGroup>
4+
<LangVersion>14</LangVersion>
5+
<TargetFramework>net10.0</TargetFramework>
46
<OutputType>Exe</OutputType>
5-
<TargetFramework>net9.0</TargetFramework>
67
<RootNamespace></RootNamespace>
78
<NoWarn>CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006</NoWarn>
9+
<UseSharedCompilation>false</UseSharedCompilation>
810
<NukeRootDirectory>..</NukeRootDirectory>
911
<NukeScriptDirectory>..</NukeScriptDirectory>
1012
<NukeTelemetryVersion>1</NukeTelemetryVersion>
@@ -13,8 +15,8 @@
1315
</PropertyGroup>
1416

1517
<ItemGroup>
16-
<PackageReference Include="Nuke.Common" Version="9.0.4" />
17-
<PackageReference Include="NuGet.Packaging" Version="6.14.0" />
18+
<PackageReference Include="Nuke.Common" Version="10.0.0" />
19+
<PackageReference Include="NuGet.Packaging" Version="7.0.1" />
1820
</ItemGroup>
1921

2022
<ItemGroup>

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "9.0.100",
3+
"version": "10.0.100",
44
"rollForward": "latestMajor"
55
}
66
}

0 commit comments

Comments
 (0)