Skip to content

Commit 657511f

Browse files
Add .NET 10 target, #1219 (#1222)
* Remove netstandard2.1 target and test support via net6.0, #1040 * Add net10.0 target * Fix merge issue * Regenerate github workflows; test OpenNLP on net10 * More C# 14 field keyword changes * .NET 10 build support in Azure DevOps * Remove net9.0 tests for lucene-cli * Add back net9.0 * Remove net9.0 from lucene-cli * Conditionally set IsPublishable * Regenerate github workflows * Remove net9.0 tests * PR feedback * Add .NET 9 tests to ADO * Upgrade Antlr4BuildTasks to 12.11.0 * Fix net9.0 test build * Revert SetTargetFramework change * Add net9.0 tests to CLI and OpenNLP test projects * Directory.Build.props: Added section to compare Visual Studio versions (including prerelease versions) to use to drive IsLegacyVisualStudioVersion property across the solution * SWEEP: Added legacy support for Visual Studio 2022, excluding net10.0, netstandard2.0, and .NET Framework from compilation. net10.0 isn't supported at all. The others cause invalid warnings in VS 2022 and excluding them from compile is the simplest way around that. * publish-test-results-for-test-projects.yml: Upload test results for net10.0 for Lucene.Net.Tests.Cli and Lucene.Net.Tests.Analysis.OpenNLP * publish-test-results-for-test-projects.yml: Upload test results for net9.0 for Lucene.Net.Tests.Cli and Lucene.Net.Tests.Analysis.OpenNLP * .build/runbuild.ps1 + github/workflows/Generate-TestWorkflows.ps1 + Directory.Build.targets: Added a key identifier SupportedTargetFrameworks to the MSBuild query so it can be parsed using a regex rather than relying on the position in the output (which changed in .NET 9). Updated all callers to use a Get-SupportedTargetFramworks() function to encapsulate the logic of retrieving the target frameworks and parsing out the string we are interested in with an error message if matching fails. * .github/workflows/Generate-TestWorkflows.ps1: Generate workflow files with no BOM * Regenerated GitHub test workflows * Fix comment --------- Co-authored-by: Shad Storhaug <shad@shadstorhaug.com>
1 parent 9a9de82 commit 657511f

82 files changed

Lines changed: 438 additions & 281 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.build/azure-templates/publish-test-results-for-test-projects.yml

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ steps:
7070
# displayName: 'Validate Template Parameters'
7171

7272

73-
# Special case: Only supports .NET Standard 1.3
73+
# Special case: Only supports .NET Standard 1.3 (we only need to test this on one framework because it is for VS)
7474
- template: publish-test-results.yml
7575
parameters:
7676
testProjectName: 'Lucene.Net.Tests.CodeAnalysis'
@@ -81,23 +81,64 @@ steps:
8181
testResultsArtifactName: '${{ parameters.testResultsArtifactName }}'
8282
testResultsFileName: '${{ parameters.testResultsFileName }}'
8383

84-
# Special case: Only supports net8.0
84+
# Special case: Only supports net10.0, net9.0 and net8.0
85+
8586
- template: publish-test-results.yml
8687
parameters:
8788
testProjectName: 'Lucene.Net.Tests.Cli'
88-
framework: 'net8.0' # Since condtions are not supported for templates, we check for the file existence within publish-test-results.yml
89+
framework: 'net10.0' # Since conditions are not supported for templates, we check for the file existence within publish-test-results.yml
90+
vsTestPlatform: '${{ parameters.vsTestPlatform }}'
91+
osName: '${{ parameters.osName }}'
92+
testResultsFormat: '${{ parameters.testResultsFormat }}'
93+
testResultsArtifactName: '${{ parameters.testResultsArtifactName }}'
94+
testResultsFileName: '${{ parameters.testResultsFileName }}'
95+
96+
- template: publish-test-results.yml
97+
parameters:
98+
testProjectName: 'Lucene.Net.Tests.Cli'
99+
framework: 'net9.0' # Since conditions are not supported for templates, we check for the file existence within publish-test-results.yml
100+
vsTestPlatform: '${{ parameters.vsTestPlatform }}'
101+
osName: '${{ parameters.osName }}'
102+
testResultsFormat: '${{ parameters.testResultsFormat }}'
103+
testResultsArtifactName: '${{ parameters.testResultsArtifactName }}'
104+
testResultsFileName: '${{ parameters.testResultsFileName }}'
105+
106+
- template: publish-test-results.yml
107+
parameters:
108+
testProjectName: 'Lucene.Net.Tests.Cli'
109+
framework: 'net8.0' # Since conditions are not supported for templates, we check for the file existence within publish-test-results.yml
89110
vsTestPlatform: '${{ parameters.vsTestPlatform }}'
90111
osName: '${{ parameters.osName }}'
91112
testResultsFormat: '${{ parameters.testResultsFormat }}'
92113
testResultsArtifactName: '${{ parameters.testResultsArtifactName }}'
93114
testResultsFileName: '${{ parameters.testResultsFileName }}'
94115

95-
# Special case: Only supports net8.0 and net48
116+
# Special case: Only supports net10.0, net9.0, net8.0 and net48
96117

97118
- template: publish-test-results.yml
98119
parameters:
99120
testProjectName: 'Lucene.Net.Tests.Analysis.OpenNLP'
100-
framework: 'net8.0' # Since condtions are not supported for templates, we check for the file existence within publish-test-results.yml
121+
framework: 'net10.0' # Since conditions are not supported for templates, we check for the file existence within publish-test-results.yml
122+
vsTestPlatform: '${{ parameters.vsTestPlatform }}'
123+
osName: '${{ parameters.osName }}'
124+
testResultsFormat: '${{ parameters.testResultsFormat }}'
125+
testResultsArtifactName: '${{ parameters.testResultsArtifactName }}'
126+
testResultsFileName: '${{ parameters.testResultsFileName }}'
127+
128+
- template: publish-test-results.yml
129+
parameters:
130+
testProjectName: 'Lucene.Net.Tests.Analysis.OpenNLP'
131+
framework: 'net9.0' # Since conditions are not supported for templates, we check for the file existence within publish-test-results.yml
132+
vsTestPlatform: '${{ parameters.vsTestPlatform }}'
133+
osName: '${{ parameters.osName }}'
134+
testResultsFormat: '${{ parameters.testResultsFormat }}'
135+
testResultsArtifactName: '${{ parameters.testResultsArtifactName }}'
136+
testResultsFileName: '${{ parameters.testResultsFileName }}'
137+
138+
- template: publish-test-results.yml
139+
parameters:
140+
testProjectName: 'Lucene.Net.Tests.Analysis.OpenNLP'
141+
framework: 'net8.0' # Since conditions are not supported for templates, we check for the file existence within publish-test-results.yml
101142
vsTestPlatform: '${{ parameters.vsTestPlatform }}'
102143
osName: '${{ parameters.osName }}'
103144
testResultsFormat: '${{ parameters.testResultsFormat }}'
@@ -107,7 +148,7 @@ steps:
107148
- template: publish-test-results.yml
108149
parameters:
109150
testProjectName: 'Lucene.Net.Tests.Analysis.OpenNLP'
110-
framework: 'net48' # Since condtions are not supported for templates, we check for the file existence within publish-test-results.yml
151+
framework: 'net48' # Since conditions are not supported for templates, we check for the file existence within publish-test-results.yml
111152
vsTestPlatform: '${{ parameters.vsTestPlatform }}'
112153
osName: '${{ parameters.osName }}'
113154
testResultsFormat: '${{ parameters.testResultsFormat }}'

.build/azure-templates/run-tests-on-os.yml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ steps:
105105
& $installScriptPath -Version $sdkVersion -Architecture $architecture -InstallDir $installPath
106106
Write-Host "##vso[task.setvariable variable=DOTNET_ROOT_X86;]$installPath"
107107
displayName: 'Use .NET SDK ${{ parameters.dotNetSdkVersion }} (x86)'
108-
condition: and(succeeded(), contains('${{ parameters.framework }}', 'net9.'), eq('${{ parameters.vsTestPlatform }}', 'x86'))
108+
condition: and(succeeded(), contains('${{ parameters.framework }}', 'net10.'), eq('${{ parameters.vsTestPlatform }}', 'x86'))
109109

110110
- task: UseDotNet@2
111111
displayName: 'Use .NET SDK 8.0.404'
@@ -132,6 +132,31 @@ steps:
132132
displayName: 'Use .NET SDK 8.0.404 (x86)'
133133
condition: and(succeeded(), contains('${{ parameters.framework }}', 'net8.'), eq('${{ parameters.vsTestPlatform }}', 'x86'))
134134

135+
- task: UseDotNet@2
136+
displayName: 'Use .NET SDK 9.0.308'
137+
inputs:
138+
packageType: 'sdk'
139+
version: '9.0.308'
140+
performMultiLevelLookup: '${{ variables.PerformMultiLevelLookup }}'
141+
condition: and(succeeded(), contains('${{ parameters.framework }}', 'net9.'))
142+
143+
# Hack: .NET 8+ no longer installs the x86 bits and they must be installed separately. However, it is not
144+
# trivial to get it into the path and to get it to pass the minimum SDK version check in runbuild.ps1.
145+
# So, we install it afterward and set the environment variable so the above SDK can delegate to it.
146+
# This code only works on Windows.
147+
- pwsh: |
148+
$sdkVersion = '9.0.308'
149+
$architecture = '${{ parameters.vsTestPlatform }}'
150+
$installScriptPath = "${env:AGENT_TEMPDIRECTORY}/dotnet-install.ps1"
151+
$installScriptUrl = "https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.ps1"
152+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
153+
Invoke-WebRequest $installScriptUrl -OutFile $installScriptPath -TimeoutSec 60
154+
$installPath = "${env:ProgramFiles(x86)}/dotnet"
155+
& $installScriptPath -Version $sdkVersion -Architecture $architecture -InstallDir $installPath
156+
Write-Host "##vso[task.setvariable variable=DOTNET_ROOT_X86;]$installPath"
157+
displayName: 'Use .NET SDK 9.0.308 (x86)'
158+
condition: and(succeeded(), contains('${{ parameters.framework }}', 'net9.'), eq('${{ parameters.vsTestPlatform }}', 'x86'))
159+
135160

136161
#- template: 'show-all-files.yml' # Uncomment for debugging
137162
- pwsh: |

.build/dependencies.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<PropertyGroup Label="NuGet Package Reference Versions">
2323
<Antlr4CodeGeneratorPackageVersion>4.6.6</Antlr4CodeGeneratorPackageVersion>
2424
<Antlr4RuntimeStandardPackageVersion>4.13.1</Antlr4RuntimeStandardPackageVersion>
25-
<Antlr4BuildTasksPackageVersion>12.8.0</Antlr4BuildTasksPackageVersion>
25+
<Antlr4BuildTasksPackageVersion>12.11.0</Antlr4BuildTasksPackageVersion>
2626
<!-- LUCENENET TODO: When ICU4N is released to production,
2727
be sure to lock down the version range below. The resource
2828
files in Lucene.Net.ICU are not compatible with any other

.build/runbuild.ps1

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ task Test -depends CheckSDK, UpdateLocalSDKVersion, Restore -description "This t
270270
$testName = $testProject.Directory.Name
271271

272272
# Call the target to get the configured test frameworks for this project. We only read the first line because MSBuild adds extra output.
273-
$frameworksString = $(dotnet build "$testProject" --verbosity minimal --nologo --no-restore /t:PrintTargetFrameworks /p:TestProjectsOnly=true /p:TestFrameworks=true)[0].Trim()
273+
$frameworksString = Get-SupportedTargetFrameworksString $testProject
274274

275275
Write-Host ""
276276
Write-Host "Frameworks To Test for ${testProject}: $frameworksString" -ForegroundColor Yellow
@@ -417,12 +417,21 @@ function Get-Version() {
417417

418418
function Get-FrameworksToTest() {
419419
# Call the target to get the configured test frameworks for a project known to contain all of them. We only read the first line because MSBuild adds extra output.
420-
$frameworksString = $(dotnet build "$projectWithAllTestFrameworks" --verbosity minimal --nologo --no-restore /t:PrintTargetFrameworks /p:TestProjectsOnly=true /p:TestFrameworks=true)[0].Trim()
420+
$frameworksString = Get-SupportedTargetFrameworksString -ProjectPath $projectWithAllTestFrameworks
421421
$frameworksToTest = $frameworksString -split '\s*;\s*'
422422
Assert($frameworksToTest.Length -gt 0) "The project at $(Normalize-FileSystemSlashes "$projectWithAllTestFrameworks") contains no target frameworks. Please configure a project that includes all testable target frameworks."
423423
return $frameworksToTest
424424
}
425425

426+
function Get-SupportedTargetFrameworksString([Parameter(Mandatory)][string] $ProjectPath) {
427+
# NOTE: This will not appear when run directly in the console with minimal verbosity. MSBuild only produces the output when using a pipe, which is what we are doing here.
428+
$output = dotnet build "$ProjectPath" --verbosity minimal --nologo --no-restore /t:PrintTargetFrameworks /p:TestProjectsOnly=true /p:TestFrameworks=true 2>&1 | Out-String
429+
if ($output -match 'SupportedTargetFrameworks=([^\s]+)') {
430+
return $matches[1]
431+
}
432+
throw "Failed to determine supported target frameworks for project: $ProjectPath"
433+
}
434+
426435
function Prepare-For-Build() {
427436
#Use only the major version as the assembly version.
428437
#This ensures binary compatibility unless the major version changes.

.github/workflows/Generate-TestWorkflows.ps1

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
3939
.PARAMETER TestFrameworks
4040
A string array of Dotnet target framework monikers to run the tests on. The default is
41-
@('net9.0','net8.0','net6.0','net472','net48').
41+
@('net10.0','net8.0','net472','net48').
4242
4343
.PARAMETER OperatingSystems
4444
A string array of Github Actions operating system monikers to run the tests on.
@@ -51,9 +51,9 @@
5151
.PARAMETER Configurations
5252
A string array of build configurations to run the tests on. The default is @('Release').
5353
54-
.PARAMETER DotNet9SDKVersion
55-
The SDK version of .NET 9.x to install on the build agent to be used for building and
56-
testing. This SDK is always installed on the build agent. The default is 9.0.x.
54+
.PARAMETER DotNet10SDKVersion
55+
The SDK version of .NET 10.x to install on the build agent to be used for building and
56+
testing. This SDK is always installed on the build agent. The default is 10.0.x.
5757
5858
.PARAMETER DotNet8SDKVersion
5959
The SDK version of .NET 8.x to install on the build agent to be used for building and
@@ -65,15 +65,15 @@ param(
6565

6666
[string]$RepoRoot = (Split-Path (Split-Path $PSScriptRoot)),
6767

68-
[string[]]$TestFrameworks = @('net9.0','net8.0','net472','net48'), # targets under test: net8.0, net8.0, netstandard2.0, net462
68+
[string[]]$TestFrameworks = @('net10.0', 'net8.0', 'net472', 'net48'), # targets under test: net10.0, net8.0, netstandard2.0, net462
6969

7070
[string[]]$OperatingSystems = @('windows-latest', 'ubuntu-latest'),
7171

7272
[string[]]$TestPlatforms = @('x64'),
7373

7474
[string[]]$Configurations = @('Release'),
7575

76-
[string]$DotNet9SDKVersion = '9.0.x',
76+
[string]$DotNet10SDKVersion = '10.0.x',
7777

7878
[string]$DotNet8SDKVersion = '8.0.x'
7979
)
@@ -141,6 +141,15 @@ function Get-ProjectPathDirectories([string]$ProjectPath, [string]$RelativeRoot,
141141
}
142142
}
143143

144+
function Get-SupportedTargetFrameworksString([Parameter(Mandatory)][string] $ProjectPath) {
145+
# NOTE: This will not appear when run directly in the console with minimal verbosity. MSBuild only produces the output when using a pipe, which is what we are doing here.
146+
$output = dotnet build "$ProjectPath" --verbosity minimal --nologo --no-restore /t:PrintTargetFrameworks /p:TestProjectsOnly=true /p:TestFrameworks=true 2>&1 | Out-String
147+
if ($output -match 'SupportedTargetFrameworks=([^\s]+)') {
148+
return $matches[1]
149+
}
150+
throw "Failed to determine supported target frameworks for project: $ProjectPath"
151+
}
152+
144153
function Ensure-Directory-Exists([string] $path) {
145154
if (!(Test-Path $path)) {
146155
New-Item $path -ItemType Directory
@@ -155,7 +164,7 @@ function Write-TestWorkflow(
155164
[string[]]$TestFrameworks = @('net6.0', 'net48'),
156165
[string[]]$TestPlatforms = @('x64'),
157166
[string[]]$OperatingSystems = @('windows-latest', 'ubuntu-latest', 'macos-latest'),
158-
[string]$DotNet9SDKVersion = $DotNet9SDKVersion,
167+
[string]$DotNet10SDKVersion = $DotNet10SDKVersion,
159168
[string]$DotNet8SDKVersion = $DotNet8SDKVersion) {
160169

161170
$dependencies = New-Object System.Collections.Generic.HashSet[string]
@@ -280,10 +289,10 @@ jobs:
280289
dotnet-version: '$DotNet8SDKVersion'
281290
if: `${{ startswith(matrix.framework, 'net8.') }}
282291
283-
- name: Setup .NET 9 SDK
292+
- name: Setup .NET 10 SDK
284293
uses: actions/setup-dotnet@v5
285294
with:
286-
dotnet-version: '$DotNet9SDKVersion'
295+
dotnet-version: '$DotNet10SDKVersion'
287296
288297
- name: Cache NuGet Packages
289298
uses: actions/cache@v5
@@ -353,7 +362,10 @@ jobs:
353362
Ensure-Directory-Exists $OutputDirectory
354363

355364
Write-Host "Generating workflow file: $FilePath"
356-
Out-File -filePath $FilePath -encoding UTF8 -inputObject $fileText
365+
366+
# Ensure the file does not get generated with a BOM
367+
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
368+
[System.IO.File]::WriteAllText($FilePath, $fileText, $utf8NoBom)
357369

358370
#Write-Host $fileText
359371
}
@@ -373,8 +385,8 @@ try {
373385
foreach ($testProject in $TestProjects) {
374386
$projectName = [System.IO.Path]::GetFileNameWithoutExtension($testProject)
375387

376-
# Call the target to get the configured test frameworks for this project. We only read the first line because MSBuild adds extra output.
377-
$frameworksString = $(dotnet build "$testProject" --verbosity minimal --nologo --no-restore /t:PrintTargetFrameworks /p:TestProjectsOnly=true /p:TestFrameworks=true)[0].Trim()
388+
# Call the target to get the configured test frameworks for this project.
389+
$frameworksString = Get-SupportedTargetFrameworksString $testProject
378390

379391
if ($frameworksString -eq 'none') {
380392
Write-Host "WARNING: Skipping project '$projectName' because it is not marked with `<IsTestProject`>true`<`/IsTestProject`> and/or it contains no test frameworks for the current environment." -ForegroundColor Yellow

.github/workflows/Lucene-Net-Tests-AllProjects.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ jobs:
7373
fail-fast: false
7474
matrix:
7575
os: [windows-latest, ubuntu-latest]
76-
framework: [net9.0, net8.0, net48, net472]
76+
framework: [net10.0, net8.0, net48, net472]
7777
platform: [x64]
7878
configuration: [Release]
7979
exclude:
@@ -102,13 +102,13 @@ jobs:
102102
- name: Setup .NET 8 SDK
103103
uses: actions/setup-dotnet@v5
104104
with:
105-
dotnet-version: '8.0.415'
105+
dotnet-version: '8.0.x'
106106
if: ${{ startswith(matrix.framework, 'net8.') }}
107107

108-
- name: Setup .NET 9 SDK
108+
- name: Setup .NET 10 SDK
109109
uses: actions/setup-dotnet@v5
110110
with:
111-
dotnet-version: '9.0.306'
111+
dotnet-version: '10.0.x'
112112

113113
- name: Cache NuGet Packages
114114
uses: actions/cache@v5
@@ -158,4 +158,3 @@ jobs:
158158
if (Test-Path $md_file) {
159159
Get-Content $md_file | Add-Content $env:GITHUB_STEP_SUMMARY
160160
}
161-

.github/workflows/Lucene-Net-Tests-Analysis-Common.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
fail-fast: false
5858
matrix:
5959
os: [windows-latest, ubuntu-latest]
60-
framework: [net9.0, net8.0, net48, net472]
60+
framework: [net10.0, net8.0, net48, net472]
6161
platform: [x64]
6262
configuration: [Release]
6363
exclude:
@@ -86,13 +86,13 @@ jobs:
8686
- name: Setup .NET 8 SDK
8787
uses: actions/setup-dotnet@v5
8888
with:
89-
dotnet-version: '8.0.415'
89+
dotnet-version: '8.0.x'
9090
if: ${{ startswith(matrix.framework, 'net8.') }}
9191

92-
- name: Setup .NET 9 SDK
92+
- name: Setup .NET 10 SDK
9393
uses: actions/setup-dotnet@v5
9494
with:
95-
dotnet-version: '9.0.306'
95+
dotnet-version: '10.0.x'
9696

9797
- name: Cache NuGet Packages
9898
uses: actions/cache@v5
@@ -142,4 +142,3 @@ jobs:
142142
if (Test-Path $md_file) {
143143
Get-Content $md_file | Add-Content $env:GITHUB_STEP_SUMMARY
144144
}
145-

.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
fail-fast: false
5555
matrix:
5656
os: [windows-latest, ubuntu-latest]
57-
framework: [net9.0, net8.0, net48, net472]
57+
framework: [net10.0, net8.0, net48, net472]
5858
platform: [x64]
5959
configuration: [Release]
6060
exclude:
@@ -83,13 +83,13 @@ jobs:
8383
- name: Setup .NET 8 SDK
8484
uses: actions/setup-dotnet@v5
8585
with:
86-
dotnet-version: '8.0.415'
86+
dotnet-version: '8.0.x'
8787
if: ${{ startswith(matrix.framework, 'net8.') }}
8888

89-
- name: Setup .NET 9 SDK
89+
- name: Setup .NET 10 SDK
9090
uses: actions/setup-dotnet@v5
9191
with:
92-
dotnet-version: '9.0.306'
92+
dotnet-version: '10.0.x'
9393

9494
- name: Cache NuGet Packages
9595
uses: actions/cache@v5
@@ -139,4 +139,3 @@ jobs:
139139
if (Test-Path $md_file) {
140140
Get-Content $md_file | Add-Content $env:GITHUB_STEP_SUMMARY
141141
}
142-

.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
fail-fast: false
5555
matrix:
5656
os: [windows-latest, ubuntu-latest]
57-
framework: [net9.0, net8.0, net48, net472]
57+
framework: [net10.0, net8.0, net48, net472]
5858
platform: [x64]
5959
configuration: [Release]
6060
exclude:
@@ -83,13 +83,13 @@ jobs:
8383
- name: Setup .NET 8 SDK
8484
uses: actions/setup-dotnet@v5
8585
with:
86-
dotnet-version: '8.0.415'
86+
dotnet-version: '8.0.x'
8787
if: ${{ startswith(matrix.framework, 'net8.') }}
8888

89-
- name: Setup .NET 9 SDK
89+
- name: Setup .NET 10 SDK
9090
uses: actions/setup-dotnet@v5
9191
with:
92-
dotnet-version: '9.0.306'
92+
dotnet-version: '10.0.x'
9393

9494
- name: Cache NuGet Packages
9595
uses: actions/cache@v5
@@ -139,4 +139,3 @@ jobs:
139139
if (Test-Path $md_file) {
140140
Get-Content $md_file | Add-Content $env:GITHUB_STEP_SUMMARY
141141
}
142-

0 commit comments

Comments
 (0)