Skip to content

Commit c765c82

Browse files
Upgrade Agents to use .Net 10 (#5444)
* .Net 10 add * Agent build with net8.0 and net10.0 * Update pipeline to support both net8.0 and net10.0 * Update ci pipleine to build both .Net versions * fix L0 test * Update csproj to include packages that can be pruned only for .net8 * Fix L1 tests * Use test.sdk 18.0.1 for both .net8 and .net10 * Update csproj files * Make net8 as default .net version and ignore certificate warning * Fix code coverage step * PR comments, rmeove UseManagedNtlm and make net8 default in vsts.release yaml * net8 as default * Rever nuget.exe version
1 parent 26d7230 commit c765c82

File tree

19 files changed

+102
-74
lines changed

19 files changed

+102
-74
lines changed

.azure-pipelines/build-job.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@ jobs:
8484
${{ if eq(parameters.targetFramework, 'all') }}:
8585
strategy:
8686
matrix:
87-
NET6.0:
88-
targetFramework: 'net6.0'
8987
NET8.0:
9088
targetFramework: 'net8.0'
89+
NET10.0:
90+
targetFramework: 'net10.0'
9191

9292

9393
${{ if ne(parameters.container, '') }}:
@@ -218,10 +218,12 @@ jobs:
218218

219219
# Code coverage
220220
- ${{ if and(parameters.codeCoverage, parameters.unitTests, parameters.functionalTests) }}:
221-
- script: dotnet tool install --global dotnet-reportgenerator-globaltool
222-
displayName: Install Report Generator
221+
- script: |
222+
dotnet tool install --global dotnet-reportgenerator-globaltool
223+
dotnet tool install --global dotnet-coverage
224+
displayName: Install Code Coverage and Report Generator
223225
224-
- script: ${{ variables.devCommand }} report
226+
- script: "${{ variables.devCommand }} report $(targetFramework) Debug ${{ parameters.os }}-${{ parameters.arch }}"
225227
displayName: Generate Code Coverage report
226228
workingDirectory: src
227229

.azure-pipelines/pipeline.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,10 @@ extends:
113113
${{ if eq(parameters.targetFramework, 'all') }}:
114114
strategy:
115115
matrix:
116-
NET6.0:
117-
targetFramework: 'net6.0'
118116
NET8.0:
119117
targetFramework: 'net8.0'
118+
NET10.0:
119+
targetFramework: 'net10.0'
120120
pool:
121121
name: 1ES-ABTT-Shared-Pool
122122
image: abtt-ubuntu-2404

.vsts.ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ extends:
6161
publishArtifacts: ${{ ne(variables['Build.Reason'], 'PullRequest') }}
6262
buildAlternatePackage: false
6363
testProxyAgent: ${{ parameters.testProxyAgent }}
64-
targetFramework: 'net8.0'
64+
targetFramework: 'all'
6565
win_x64: ${{ parameters.win_x64 }}
6666
win_x86: ${{ parameters.win_x86 }}
6767
win_arm64: ${{ parameters.win_arm64 }}

.vsts.release.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ parameters:
3030
default: net8.0
3131
values:
3232
- net8.0
33+
- net10.0
3334

3435
- name: derivedFrom
3536
type: string
@@ -145,9 +146,9 @@ extends:
145146
146147
## Verify target framework for specified version
147148
$majorVersion = $agentVersion.Split('.')[0]
148-
if (("${{ parameters.targetFramework }}" -eq "net6.0" -and $majorVersion -ne "3") -or
149-
("${{ parameters.targetFramework }}" -eq "net8.0" -and $majorVersion -ne "4")) {
150-
Write-Error "The major version should be 3 for net6.0 and 4 for net8.0" -ErrorAction Stop
149+
if (("${{ parameters.targetFramework }}" -eq "net8.0" -and $majorVersion -ne "4") -or
150+
("${{ parameters.targetFramework }}" -eq "net10.0" -and $majorVersion -ne "5")) {
151+
Write-Error "The major version should be 4 for net8.0 and 5 for net10.0" -ErrorAction Stop
151152
}
152153
}
153154
if ($isTestRun) {

src/Agent.Listener/Agent.Listener.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717
<PackageReference Include="CommandLineParser" Version="2.7.82" />
1818
<PackageReference Include="Microsoft.TeamFoundationServer.Client" Version="19.230.0-preview" />
1919
<PackageReference Include="Microsoft.VisualStudio.Services.InteractiveClient" Version="19.230.0-preview" />
20-
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
20+
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" Condition="$(TargetFramework.StartsWith('net8'))" />
2121
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="6.0.0-preview.5.21301.5" />
2222
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.1" />
2323
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
2424
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="7.0.2" />
2525
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
26-
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
27-
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
28-
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
26+
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
27+
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
28+
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
2929
</ItemGroup>
3030

3131
<ItemGroup>

src/Agent.Listener/ValidationHelper/InstallerVerifier.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ public static void VerifyFileSignedByMicrosoft(string filePath, Tracing trace, s
111111
CRYPT_PROVIDER_CERT provCert = (CRYPT_PROVIDER_CERT)Marshal.PtrToStructure(pProviderCertificate, typeof(CRYPT_PROVIDER_CERT));
112112

113113
// Check for our EKU in the certificate
114+
// Disable the warning. TODO: Remove this warning suppression after the code is refactored to use X509CertificateLoader instead.
115+
#pragma warning disable SYSLIB0057
114116
using (X509Certificate2 x509Cert = new X509Certificate2(provCert.pCert))
115117
{
116118
if (((X509EnhancedKeyUsageExtension)x509Cert.Extensions[EXTENDED_KEY_USAGE]).EnhancedKeyUsages[expectedEKU] == null)
@@ -121,6 +123,8 @@ public static void VerifyFileSignedByMicrosoft(string filePath, Tracing trace, s
121123

122124
trace.Info(String.Format("Authenticode signature for file {0} is signed with a certificate containing the EKU {1}.", filePath, expectedEKU));
123125
}
126+
// Re-enable the warning.
127+
#pragma warning restore SYSLIB0057
124128
}
125129
finally
126130
{

src/Agent.PluginHost/Agent.PluginHost.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
<ProjectReference Include="..\Agent.Sdk\Agent.Sdk.csproj" />
1212
</ItemGroup>
1313
<ItemGroup>
14-
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" />
14+
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" Condition="$(TargetFramework.StartsWith('net8'))" />
1515
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
1616
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
1717
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
18-
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
19-
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
20-
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
18+
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
19+
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
20+
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
2121
</ItemGroup>
2222
</Project>

src/Agent.Plugins/Agent.Plugins.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
1818
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="7.0.2" />
1919
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
20-
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
21-
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
22-
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
20+
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
21+
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
22+
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
2323
</ItemGroup>
2424
</Project>

src/Agent.Plugins/TFCliManager.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,18 @@ public void SetupProxy(string proxyUrl, string proxyUsername, string proxyPasswo
158158
}
159159

160160
public void SetupClientCertificate(string clientCert, string clientCertKey, string clientCertArchive, string clientCertPassword)
161-
{
161+
{ // Disable the warning. TODO: Remove this warning suppression after the code is refactored to use X509CertificateLoader instead.
162+
#pragma warning disable SYSLIB0057
162163
ArgUtil.File(clientCert, nameof(clientCert));
163164
X509Certificate2 cert = new X509Certificate2(clientCert);
164165
ExecutionContext.Debug($"Set VstsClientCertificate={cert.Thumbprint} for Tf.exe to support client certificate.");
165166
AdditionalEnvironmentVariables["VstsClientCertificate"] = cert.Thumbprint;
166167

167168
// Script Tf commands in tasks
168169
ExecutionContext.SetVariable("VstsClientCertificate", cert.Thumbprint);
170+
171+
// Re-enable the warning.
172+
#pragma warning restore SYSLIB0057
169173
}
170174

171175
public async Task ShelveAsync(string shelveset, string commentFile, bool move)

src/Agent.Sdk/Agent.Sdk.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@
88

99
<ItemGroup>
1010
<PackageReference Include="Microsoft.Security.Utilities.Core" Version="1.19.0" />
11-
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
11+
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" Condition="$(TargetFramework.StartsWith('net8'))" />
1212
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="6.0.0-preview.5.21301.5" />
1313
<PackageReference Include="System.Management" Version="4.7.0" />
1414
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.1" />
1515
<PackageReference Include="System.Security.Principal.Windows" Version="6.0.0-preview.5.21301.5" />
16-
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" />
16+
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" Condition="$(TargetFramework.StartsWith('net8'))" />
1717
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
1818
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
1919
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
20-
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
21-
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
22-
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
20+
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
21+
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
22+
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
2323
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.3.1" />
2424
<PackageReference Include="System.Security.Cryptography.Xml" Version="6.0.1" />
25-
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="8.0.0" />
25+
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="8.0.0" Condition="$(TargetFramework.StartsWith('net8'))" />
2626
<PackageReference Include="Azure.Core" Version="1.44.1" />
2727
</ItemGroup>
2828
</Project>

0 commit comments

Comments
 (0)