diff --git a/.azure-pipelines/release.yml b/.azure-pipelines/release.yml
index 797a42d73..68808aa67 100644
--- a/.azure-pipelines/release.yml
+++ b/.azure-pipelines/release.yml
@@ -136,10 +136,10 @@ extends:
$version = (Get-Content .\VERSION) -replace '\.\d+$', ''
Write-Host "##vso[task.setvariable variable=version;isReadOnly=true]$version"
- task: UseDotNet@2
- displayName: 'Use .NET 8 SDK'
+ displayName: 'Use .NET 10 SDK'
inputs:
packageType: sdk
- version: '8.x'
+ version: '10.x'
- task: PowerShell@2
displayName: 'Build payload'
inputs:
@@ -296,10 +296,10 @@ extends:
script: |
echo "##vso[task.setvariable variable=version;isReadOnly=true]$(cat ./VERSION | sed -E 's/.[0-9]+$//')"
- task: UseDotNet@2
- displayName: 'Use .NET 8 SDK'
+ displayName: 'Use .NET 10 SDK'
inputs:
packageType: sdk
- version: '8.x'
+ version: '10.x'
- task: Bash@3
displayName: 'Build payload'
inputs:
@@ -565,10 +565,10 @@ extends:
script: |
echo "##vso[task.setvariable variable=version;isReadOnly=true]$(cat ./VERSION | sed -E 's/.[0-9]+$//')"
- task: UseDotNet@2
- displayName: 'Use .NET 8 SDK'
+ displayName: 'Use .NET 10 SDK'
inputs:
packageType: sdk
- version: '8.x'
+ version: '10.x'
- task: Bash@3
displayName: 'Build payload'
inputs:
@@ -664,10 +664,10 @@ extends:
$version = (Get-Content .\VERSION) -replace '\.\d+$', ''
Write-Host "##vso[task.setvariable variable=version;isReadOnly=true]$version"
- task: UseDotNet@2
- displayName: 'Use .NET 8 SDK'
+ displayName: 'Use .NET 10 SDK'
inputs:
packageType: sdk
- version: '8.x'
+ version: '10.x'
- task: NuGetToolInstaller@1
displayName: 'Install NuGet CLI'
inputs:
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 2fd38db60..d2b88817b 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -27,7 +27,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v5.1.0
with:
- dotnet-version: 8.0.x
+ dotnet-version: 10.0.x
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index c59f623f7..a77a8d66d 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -30,7 +30,16 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v5.1.0
with:
- dotnet-version: 8.0.x
+ dotnet-version: 10.0.x
+
+ # The x86 test host requires an x86 .NET runtime, which isn't pre-installed
+ # on the runner, nor can the actions/setup-dotnet action install it.
+ # Install it manually so tests can run.
+ - name: Setup .NET (x86)
+ if: matrix.runtime == 'win-x86'
+ run: |
+ Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -OutFile dotnet-install.ps1
+ ./dotnet-install.ps1 -Channel 10.0 -Architecture x86 -InstallDir 'C:\Program Files (x86)\dotnet'
- name: Install dependencies
run: dotnet restore
@@ -78,7 +87,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v5.1.0
with:
- dotnet-version: 8.0.x
+ dotnet-version: 10.0.x
- name: Install dependencies
run: dotnet restore
@@ -122,7 +131,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v5.1.0
with:
- dotnet-version: 8.0.x
+ dotnet-version: 10.0.x
- name: Install dependencies
run: dotnet restore
diff --git a/.vscode/launch.json b/.vscode/launch.json
index d9b004b86..152dd35b3 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -10,7 +10,7 @@
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
- "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net8.0/git-credential-manager.dll",
+ "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net10.0/git-credential-manager.dll",
"args": ["get"],
"cwd": "${workspaceFolder}/out/shared/Git-Credential-Manager",
"console": "integratedTerminal",
@@ -22,7 +22,7 @@
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
- "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net8.0/git-credential-manager.dll",
+ "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net10.0/git-credential-manager.dll",
"args": ["store"],
"cwd": "${workspaceFolder}/out/shared/Git-Credential-Manager",
"console": "integratedTerminal",
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index c559b17b8..8dd1d3737 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -56,7 +56,7 @@
"type": "shell",
"group": "test",
"args": [
- "~/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll",
+ "~/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll",
"-reports:${workspaceFolder}/**/TestResults/**/coverage.cobertura.xml",
"-targetdir:${workspaceFolder}/out/code-coverage"
],
@@ -71,7 +71,7 @@
"type": "shell",
"group": "test",
"args": [
- "${env:USERROFILE}/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll",
+ "${env:USERROFILE}/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll",
"-reports:${workspaceFolder}/**/TestResults/**/coverage.cobertura.xml",
"-targetdir:${workspaceFolder}/out/code-coverage"
],
diff --git a/Directory.Build.props b/Directory.Build.props
index e7ed76eb9..58e8f8770 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -27,9 +27,7 @@
-
- 8.0.5
-
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 000000000..a836e1bca
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,40 @@
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/GCM.MSBuild.csproj b/build/GCM.MSBuild.csproj
index 3df4909e6..bd25f8345 100644
--- a/build/GCM.MSBuild.csproj
+++ b/build/GCM.MSBuild.csproj
@@ -1,13 +1,13 @@
- net8.0
+ net10.0
false
-
-
+
+
diff --git a/docs/development.md b/docs/development.md
index 0242d68b8..9eedda44a 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -215,13 +215,13 @@ HTML reports can be generated using ReportGenerator, this should be installed
during the build process, from the command line:
```shell
-dotnet ~/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage
+dotnet ~/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage
```
or
```shell
-dotnet {$env:USERPROFILE}/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage
+dotnet {$env:USERPROFILE}/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage
```
Or via VSCode Terminal/Run Task:
diff --git a/src/linux/Packaging.Linux/Packaging.Linux.csproj b/src/linux/Packaging.Linux/Packaging.Linux.csproj
index ddfb31500..b1ec25a99 100644
--- a/src/linux/Packaging.Linux/Packaging.Linux.csproj
+++ b/src/linux/Packaging.Linux/Packaging.Linux.csproj
@@ -3,7 +3,7 @@
- net8.0
+ net10.0
false
diff --git a/src/linux/Packaging.Linux/install-from-source.sh b/src/linux/Packaging.Linux/install-from-source.sh
index d323ac9e1..888a23597 100755
--- a/src/linux/Packaging.Linux/install-from-source.sh
+++ b/src/linux/Packaging.Linux/install-from-source.sh
@@ -169,7 +169,7 @@ case "$distribution" in
# Install dotnet packages and dependencies if needed.
if [ -z "$(verify_existing_dotnet_installation)" ]; then
# First try to use native feeds (Ubuntu 22.04 and later).
- if ! apt_install dotnet8; then
+ if ! apt_install dotnet10; then
# If the native feeds fail, we fall back to
# packages.microsoft.com. We begin by adding the dotnet package
# repository/signing key.
diff --git a/src/linux/Packaging.Linux/layout.sh b/src/linux/Packaging.Linux/layout.sh
index fe3a0f2b8..7d21a9dff 100755
--- a/src/linux/Packaging.Linux/layout.sh
+++ b/src/linux/Packaging.Linux/layout.sh
@@ -49,7 +49,7 @@ GCM_SRC="$SRC/shared/Git-Credential-Manager"
PROJ_OUT="$OUT/linux/Packaging.Linux"
# Build parameters
-FRAMEWORK=net8.0
+FRAMEWORK=net10.0
# Perform pre-execution checks
CONFIGURATION="${CONFIGURATION:=Debug}"
diff --git a/src/osx/Installer.Mac/Installer.Mac.csproj b/src/osx/Installer.Mac/Installer.Mac.csproj
index daabd20d4..ca872f911 100644
--- a/src/osx/Installer.Mac/Installer.Mac.csproj
+++ b/src/osx/Installer.Mac/Installer.Mac.csproj
@@ -3,7 +3,7 @@
- net8.0
+ net10.0
false
diff --git a/src/osx/Installer.Mac/layout.sh b/src/osx/Installer.Mac/layout.sh
index ad8e2cfc2..9af3555b8 100755
--- a/src/osx/Installer.Mac/layout.sh
+++ b/src/osx/Installer.Mac/layout.sh
@@ -24,7 +24,7 @@ GCM_SRC="$SRC/shared/Git-Credential-Manager"
GCM_UI_SRC="$SRC/shared/Git-Credential-Manager.UI.Avalonia"
# Build parameters
-FRAMEWORK=net8.0
+FRAMEWORK=net10.0
# Parse script arguments
for i in "$@"
diff --git a/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj b/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj
index 9e768b91c..b3072b96d 100644
--- a/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj
+++ b/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj
@@ -1,20 +1,20 @@
- net8.0
+ net10.0
false
true
latest
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj b/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj
index 6aab348f8..a2d5c69bb 100644
--- a/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj
+++ b/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj
@@ -1,8 +1,8 @@
- net8.0
- net8.0;net472
+ net10.0
+ net10.0;net472
Atlassian.Bitbucket
Atlassian.Bitbucket
false
diff --git a/src/shared/Core.Tests/Core.Tests.csproj b/src/shared/Core.Tests/Core.Tests.csproj
index e3ae7e6b0..64a1e2437 100644
--- a/src/shared/Core.Tests/Core.Tests.csproj
+++ b/src/shared/Core.Tests/Core.Tests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net10.0
false
true
latest
@@ -9,13 +9,13 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/shared/Core/Core.csproj b/src/shared/Core/Core.csproj
index f2804177b..cdfd08deb 100644
--- a/src/shared/Core/Core.csproj
+++ b/src/shared/Core/Core.csproj
@@ -1,8 +1,8 @@
- net8.0
- net8.0;net472
+ net10.0
+ net10.0;net472
gcmcore
GitCredentialManager
false
@@ -13,25 +13,25 @@
-
-
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
diff --git a/src/shared/DotnetTool/DotnetTool.csproj b/src/shared/DotnetTool/DotnetTool.csproj
index a1107a4b6..720f75693 100644
--- a/src/shared/DotnetTool/DotnetTool.csproj
+++ b/src/shared/DotnetTool/DotnetTool.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net10.0
true
dotnet-tool.nuspec
diff --git a/src/shared/DotnetTool/dotnet-tool.nuspec b/src/shared/DotnetTool/dotnet-tool.nuspec
index 35f81ebc9..9eb9a7020 100644
--- a/src/shared/DotnetTool/dotnet-tool.nuspec
+++ b/src/shared/DotnetTool/dotnet-tool.nuspec
@@ -11,7 +11,7 @@
-
+
diff --git a/src/shared/DotnetTool/layout.ps1 b/src/shared/DotnetTool/layout.ps1
index ca9b13011..f2bd87285 100644
--- a/src/shared/DotnetTool/layout.ps1
+++ b/src/shared/DotnetTool/layout.ps1
@@ -44,7 +44,7 @@ $DotnetToolRel = "shared/DotnetTool"
$GcmSrc = Join-Path $Src "shared\Git-Credential-Manager"
$ProjOut = Join-Path $Out $DotnetToolRel
-$Framework = "net8.0"
+$Framework = "net10.0"
if (-not $Output -or $Output.Trim() -eq "") {
$Output = Join-Path $ProjOut "nupkg\$Configuration"
diff --git a/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj b/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj
index 8c469897e..b367bb48a 100644
--- a/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj
+++ b/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj
@@ -2,8 +2,8 @@
Exe
- net8.0
- net472;net8.0
+ net10.0
+ net472;net10.0
win-x86;win-x64;win-arm64;osx-x64;linux-x64;osx-arm64;linux-arm64;linux-arm
git-credential-manager
GitCredentialManager
diff --git a/src/shared/GitHub.Tests/GitHub.Tests.csproj b/src/shared/GitHub.Tests/GitHub.Tests.csproj
index 0574e00d1..cf7f8be69 100644
--- a/src/shared/GitHub.Tests/GitHub.Tests.csproj
+++ b/src/shared/GitHub.Tests/GitHub.Tests.csproj
@@ -1,20 +1,20 @@
- net8.0
+ net10.0
false
true
latest
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/shared/GitHub/GitHub.csproj b/src/shared/GitHub/GitHub.csproj
index 66a4afd79..53ac5cf94 100644
--- a/src/shared/GitHub/GitHub.csproj
+++ b/src/shared/GitHub/GitHub.csproj
@@ -1,8 +1,8 @@
- net8.0
- net8.0;net472
+ net10.0
+ net10.0;net472
GitHub
GitHub
false
diff --git a/src/shared/GitLab.Tests/GitLab.Tests.csproj b/src/shared/GitLab.Tests/GitLab.Tests.csproj
index 098878aec..aef8483a1 100644
--- a/src/shared/GitLab.Tests/GitLab.Tests.csproj
+++ b/src/shared/GitLab.Tests/GitLab.Tests.csproj
@@ -1,20 +1,20 @@
- net8.0
+ net10.0
false
true
latest
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/shared/GitLab/GitLab.csproj b/src/shared/GitLab/GitLab.csproj
index 25c37f2fe..19aa356f2 100644
--- a/src/shared/GitLab/GitLab.csproj
+++ b/src/shared/GitLab/GitLab.csproj
@@ -1,8 +1,8 @@
- net8.0
- net8.0;net472
+ net10.0
+ net10.0;net472
GitLab
GitLab
false
diff --git a/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj b/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj
index 1c673bcc9..e9cb3f16d 100644
--- a/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj
+++ b/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj
@@ -1,20 +1,20 @@
- net8.0
+ net10.0
false
true
latest
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj b/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj
index eaf866bfa..73b7dedff 100644
--- a/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj
+++ b/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj
@@ -1,8 +1,8 @@
- net8.0
- net8.0;net472
+ net10.0
+ net10.0;net472
Microsoft.AzureRepos
Microsoft.AzureRepos
false
diff --git a/src/shared/TestInfrastructure/TestInfrastructure.csproj b/src/shared/TestInfrastructure/TestInfrastructure.csproj
index 63f6fee89..9c3e96e5e 100644
--- a/src/shared/TestInfrastructure/TestInfrastructure.csproj
+++ b/src/shared/TestInfrastructure/TestInfrastructure.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net10.0
GitCredentialManager.Tests
false
false
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/windows/Installer.Windows/Installer.Windows.csproj b/src/windows/Installer.Windows/Installer.Windows.csproj
index ec678fe5f..ace93b63e 100644
--- a/src/windows/Installer.Windows/Installer.Windows.csproj
+++ b/src/windows/Installer.Windows/Installer.Windows.csproj
@@ -14,7 +14,6 @@
false
false
$(PlatformOutPath)Installer.Windows\bin\$(Configuration)\net472\$(RuntimeIdentifier)\
- 6.3.1
false
@@ -29,7 +28,7 @@
-
+
@@ -37,8 +36,8 @@
- "$(NuGetPackageRoot)Tools.InnoSetup\$(InnoSetupVersion)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=system /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)"
- "$(NuGetPackageRoot)Tools.InnoSetup\$(InnoSetupVersion)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=user /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)"
+ "$(PkgTools_InnoSetup)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=system /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)"
+ "$(PkgTools_InnoSetup)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=user /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)"