diff --git a/.github/workflows/pull-request-linux.yml b/.github/workflows/pull-request-linux.yml index d7dbde9852..bfc9d30850 100644 --- a/.github/workflows/pull-request-linux.yml +++ b/.github/workflows/pull-request-linux.yml @@ -31,7 +31,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 8.0.101 + dotnet-version: 9.0.100 - name: Add permission to run shell run: chmod -R +x *.sh diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 334236b9f6..649df461ee 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -31,7 +31,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 8.0.101 + dotnet-version: 9.0.x - name: Restore dependencies run: ./build-restore.cmd diff --git a/.pipelines/azure-pipelines.yml b/.pipelines/azure-pipelines.yml index 9d8226641b..9f0cbfbcd3 100644 --- a/.pipelines/azure-pipelines.yml +++ b/.pipelines/azure-pipelines.yml @@ -35,7 +35,7 @@ steps: continueOnError: false inputs: packageType: 'sdk' - version: '8.0.101' + version: '9.0.x' useGlobalJson: false performMultiLevelLookup: true workingDirectory: '$(Build.SourcesDirectory)' diff --git a/global.json b/global.json index 4dec786e4f..44bc2762d7 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.101", + "version": "9.0.100", "rollForward": "feature" } } \ No newline at end of file diff --git a/src/VirtualClient/CodeQuality.targets b/src/VirtualClient/CodeQuality.targets index 525795319a..d4c57b953f 100644 --- a/src/VirtualClient/CodeQuality.targets +++ b/src/VirtualClient/CodeQuality.targets @@ -7,12 +7,15 @@ All + runtime All + runtime All + runtime diff --git a/src/VirtualClient/Module.props b/src/VirtualClient/Module.props index 8c88316f0f..9e780b04e5 100644 --- a/src/VirtualClient/Module.props +++ b/src/VirtualClient/Module.props @@ -21,7 +21,7 @@ --> - 4.17.0 + 4.18.1 1.11.4 @@ -35,26 +35,8 @@ 5.0.0 - - 2.2.0 - - - 2.2.0 - - - 2.2.7 - - - 2.2.0 - - - 2.2.0 - - - 5.1.0 - - 6.0.12 + 9.0.0 4.7.0 @@ -66,28 +48,28 @@ 2.0.61 - 8.0.0 + 9.0.0 - 8.0.0 + 9.0.0 - 8.0.0 + 9.0.0 - 8.0.0 + 9.0.0 - 8.0.0 + 9.0.0 - 17.0.0 + 17.11.1 - 6.0.9 + 9.0.0 - 8.0.6 + 9.0.0 5.0.0 @@ -102,13 +84,10 @@ 3.13.2 - 4.2.1 + 4.6.0 - 7.2.3 - - - 3.0.0 + 8.5.0 7.0.0 @@ -150,7 +129,7 @@ 4.3.0 - 8.0.0 + 9.0.0 5.0.0 @@ -180,6 +159,7 @@ true 1.0.0.0 $(VCBuildVersion) + en - diff --git a/src/VirtualClient/VirtualClient.Api.UnitTests/VirtualClient.Api.UnitTests.csproj b/src/VirtualClient/VirtualClient.Api.UnitTests/VirtualClient.Api.UnitTests.csproj index 70acb9d24a..5083dbde20 100644 --- a/src/VirtualClient/VirtualClient.Api.UnitTests/VirtualClient.Api.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.Api.UnitTests/VirtualClient.Api.UnitTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false false diff --git a/src/VirtualClient/VirtualClient.Api/ApplicationController.cs b/src/VirtualClient/VirtualClient.Api/ApplicationController.cs index cf7c9c2a88..631c9c768c 100644 --- a/src/VirtualClient/VirtualClient.Api/ApplicationController.cs +++ b/src/VirtualClient/VirtualClient.Api/ApplicationController.cs @@ -6,6 +6,7 @@ namespace VirtualClient.Api using System; using System.ComponentModel; using System.Threading.Tasks; + using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; diff --git a/src/VirtualClient/VirtualClient.Api/EventsController.cs b/src/VirtualClient/VirtualClient.Api/EventsController.cs index 0decb266b6..f72288f421 100644 --- a/src/VirtualClient/VirtualClient.Api/EventsController.cs +++ b/src/VirtualClient/VirtualClient.Api/EventsController.cs @@ -7,6 +7,7 @@ namespace VirtualClient.Api using System.ComponentModel; using System.Threading; using System.Threading.Tasks; + using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; diff --git a/src/VirtualClient/VirtualClient.Api/VirtualClient.Api.csproj b/src/VirtualClient/VirtualClient.Api/VirtualClient.Api.csproj index 20a17c7820..e79777b56a 100644 --- a/src/VirtualClient/VirtualClient.Api/VirtualClient.Api.csproj +++ b/src/VirtualClient/VirtualClient.Api/VirtualClient.Api.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 VirtualClient.Api VirtualClient.Api AD0001,SA1508 @@ -9,11 +9,9 @@ - - - - - + + + diff --git a/src/VirtualClient/VirtualClient.Common.UnitTests/VirtualClient.Common.UnitTests.csproj b/src/VirtualClient/VirtualClient.Common.UnitTests/VirtualClient.Common.UnitTests.csproj index 989e96d020..46cf4daa3f 100644 --- a/src/VirtualClient/VirtualClient.Common.UnitTests/VirtualClient.Common.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.Common.UnitTests/VirtualClient.Common.UnitTests.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false VirtualClient.Common CA1001 diff --git a/src/VirtualClient/VirtualClient.Common/VirtualClient.Common.csproj b/src/VirtualClient/VirtualClient.Common/VirtualClient.Common.csproj index 28347fd220..a6853be2d9 100644 --- a/src/VirtualClient/VirtualClient.Common/VirtualClient.Common.csproj +++ b/src/VirtualClient/VirtualClient.Common/VirtualClient.Common.csproj @@ -1,12 +1,17 @@  - net8.0 + net9.0 VirtualClient.Common + + + + + @@ -14,7 +19,6 @@ - diff --git a/src/VirtualClient/VirtualClient.Contracts.UnitTests/VirtualClient.Contracts.UnitTests.csproj b/src/VirtualClient/VirtualClient.Contracts.UnitTests/VirtualClient.Contracts.UnitTests.csproj index 5a8c0b5fdd..a3b58ea34b 100644 --- a/src/VirtualClient/VirtualClient.Contracts.UnitTests/VirtualClient.Contracts.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.Contracts.UnitTests/VirtualClient.Contracts.UnitTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false false diff --git a/src/VirtualClient/VirtualClient.Contracts/MemoryChipInfo.cs b/src/VirtualClient/VirtualClient.Contracts/MemoryChipInfo.cs index 0f6a0ae3df..03eb67ccd3 100644 --- a/src/VirtualClient/VirtualClient.Contracts/MemoryChipInfo.cs +++ b/src/VirtualClient/VirtualClient.Contracts/MemoryChipInfo.cs @@ -60,7 +60,7 @@ public string PartNumber /// /// The memory chip capacity (in-bytes). /// - public long Capacity + public new long Capacity { get { diff --git a/src/VirtualClient/VirtualClient.Contracts/VirtualClient.Contracts.csproj b/src/VirtualClient/VirtualClient.Contracts/VirtualClient.Contracts.csproj index 631eaac313..0b61d42e14 100644 --- a/src/VirtualClient/VirtualClient.Contracts/VirtualClient.Contracts.csproj +++ b/src/VirtualClient/VirtualClient.Contracts/VirtualClient.Contracts.csproj @@ -1,13 +1,12 @@  - net8.0 + net9.0 VirtualClient.Contracts SA1117,SA1508,IL2026,IL2072 - diff --git a/src/VirtualClient/VirtualClient.Core.FunctionalTests/VirtualClient.Core.FunctionalTests.csproj b/src/VirtualClient/VirtualClient.Core.FunctionalTests/VirtualClient.Core.FunctionalTests.csproj index 5811de875a..595ffacda6 100644 --- a/src/VirtualClient/VirtualClient.Core.FunctionalTests/VirtualClient.Core.FunctionalTests.csproj +++ b/src/VirtualClient/VirtualClient.Core.FunctionalTests/VirtualClient.Core.FunctionalTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false false diff --git a/src/VirtualClient/VirtualClient.Core.UnitTests/Identity/CertificateManagerTest.cs b/src/VirtualClient/VirtualClient.Core.UnitTests/Identity/CertificateManagerTest.cs index 6330f1150a..7b744c5231 100644 --- a/src/VirtualClient/VirtualClient.Core.UnitTests/Identity/CertificateManagerTest.cs +++ b/src/VirtualClient/VirtualClient.Core.UnitTests/Identity/CertificateManagerTest.cs @@ -133,7 +133,7 @@ public async Task CertificateManagerSearchesTheExpectedDirectoryForCertificates( Assert.AreEqual(expectedCertificateFile, actualCertificateFile); confirmedFile = true; }) - .ReturnsAsync(certificate.RawData); + .ReturnsAsync(certificate.Export(X509ContentType.Pfx)); // Expectation: // We do not need to compare the certificate properties. We just need to ensure we attempted to @@ -198,7 +198,7 @@ public async Task CertificateManagerHandlesDifferentIssuerAndSubjectNameFormats( Assert.AreEqual(expectedCertificateFile, actualCertificateFile); confirmedFile = true; }) - .ReturnsAsync(certificate.RawData); + .ReturnsAsync(certificate.Export(X509ContentType.Pfx)); // Expectation: // We do not need to compare the certificate properties. We just need to ensure we attempted to diff --git a/src/VirtualClient/VirtualClient.Core.UnitTests/VirtualClient.Core.UnitTests.csproj b/src/VirtualClient/VirtualClient.Core.UnitTests/VirtualClient.Core.UnitTests.csproj index 023263e191..fe46fdef4c 100644 --- a/src/VirtualClient/VirtualClient.Core.UnitTests/VirtualClient.Core.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.Core.UnitTests/VirtualClient.Core.UnitTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false false diff --git a/src/VirtualClient/VirtualClient.Core/Identity/CertificateManager.cs b/src/VirtualClient/VirtualClient.Core/Identity/CertificateManager.cs index 6577948993..e94c8d5998 100644 --- a/src/VirtualClient/VirtualClient.Core/Identity/CertificateManager.cs +++ b/src/VirtualClient/VirtualClient.Core/Identity/CertificateManager.cs @@ -125,9 +125,9 @@ public async Task GetCertificateFromPathAsync(string thumbprin byte[] certificateBytes = await this.FileSystem.File.ReadAllBytesAsync(file); if (certificateBytes?.Any() == true) { - X509Certificate2 certificateFromFile = new X509Certificate2( + X509Certificate2 certificateFromFile = X509CertificateLoader.LoadPkcs12( certificateBytes, - string.Empty.ToSecureString(), + null, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); if (certificateFromFile != null) @@ -199,9 +199,9 @@ public async Task GetCertificateFromPathAsync(string issuer, s byte[] certificateBytes = await this.FileSystem.File.ReadAllBytesAsync(file); if (certificateBytes?.Any() == true) { - X509Certificate2 certificateFromFile = new X509Certificate2( + X509Certificate2 certificateFromFile = X509CertificateLoader.LoadPkcs12( certificateBytes, - string.Empty.ToSecureString(), + string.Empty, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); if (certificateFromFile != null) diff --git a/src/VirtualClient/VirtualClient.Core/VirtualClient.Core.csproj b/src/VirtualClient/VirtualClient.Core/VirtualClient.Core.csproj index b10f714373..dae93851fe 100644 --- a/src/VirtualClient/VirtualClient.Core/VirtualClient.Core.csproj +++ b/src/VirtualClient/VirtualClient.Core/VirtualClient.Core.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 VirtualClient.Core VirtualClient CA1060,CA1416;CA2200,SA1116,SA1508 @@ -11,7 +11,7 @@ - + diff --git a/src/VirtualClient/VirtualClient.Dependencies.UnitTests/VirtualClient.Dependencies.UnitTests.csproj b/src/VirtualClient/VirtualClient.Dependencies.UnitTests/VirtualClient.Dependencies.UnitTests.csproj index 613ce4bbc6..7d2d553d2f 100644 --- a/src/VirtualClient/VirtualClient.Dependencies.UnitTests/VirtualClient.Dependencies.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.Dependencies.UnitTests/VirtualClient.Dependencies.UnitTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false true diff --git a/src/VirtualClient/VirtualClient.Dependencies/RedisPackageInstallation.cs b/src/VirtualClient/VirtualClient.Dependencies/RedisPackageInstallation.cs index a2a35ce6c4..1e87c049ee 100644 --- a/src/VirtualClient/VirtualClient.Dependencies/RedisPackageInstallation.cs +++ b/src/VirtualClient/VirtualClient.Dependencies/RedisPackageInstallation.cs @@ -1,5 +1,6 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. + // in opensoruce to download redis from apt package manager. namespace VirtualClient.Dependencies { @@ -9,13 +10,9 @@ namespace VirtualClient.Dependencies using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; - using Microsoft.VisualBasic; - using Newtonsoft.Json; using Polly; using VirtualClient.Common; - using VirtualClient.Common.Contracts; using VirtualClient.Common.Extensions; - using VirtualClient.Common.Platform; using VirtualClient.Common.Telemetry; using VirtualClient.Contracts; diff --git a/src/VirtualClient/VirtualClient.Dependencies/VirtualClient.Dependencies.csproj b/src/VirtualClient/VirtualClient.Dependencies/VirtualClient.Dependencies.csproj index ba4bd2d805..e904e416a8 100644 --- a/src/VirtualClient/VirtualClient.Dependencies/VirtualClient.Dependencies.csproj +++ b/src/VirtualClient/VirtualClient.Dependencies/VirtualClient.Dependencies.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 VirtualClient.Dependencies SA1508 diff --git a/src/VirtualClient/VirtualClient.Documentation/VirtualClient.Documentation.csproj b/src/VirtualClient/VirtualClient.Documentation/VirtualClient.Documentation.csproj index be5e0d5818..c3a2817621 100644 --- a/src/VirtualClient/VirtualClient.Documentation/VirtualClient.Documentation.csproj +++ b/src/VirtualClient/VirtualClient.Documentation/VirtualClient.Documentation.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 VirtualClient.Documentation SA1508 diff --git a/src/VirtualClient/VirtualClient.ExampleWorkload/VirtualClient.ExampleWorkload.csproj b/src/VirtualClient/VirtualClient.ExampleWorkload/VirtualClient.ExampleWorkload.csproj index d917a8d9b6..a1de1c6add 100644 --- a/src/VirtualClient/VirtualClient.ExampleWorkload/VirtualClient.ExampleWorkload.csproj +++ b/src/VirtualClient/VirtualClient.ExampleWorkload/VirtualClient.ExampleWorkload.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 ExampleWorkload VirtualClient win-x64;linux-x64;win-arm64;linux-arm64 diff --git a/src/VirtualClient/VirtualClient.ExampleWorkload/exampleworkload.nuspec b/src/VirtualClient/VirtualClient.ExampleWorkload/exampleworkload.nuspec index 548df6e35c..cf4f62767b 100644 --- a/src/VirtualClient/VirtualClient.ExampleWorkload/exampleworkload.nuspec +++ b/src/VirtualClient/VirtualClient.ExampleWorkload/exampleworkload.nuspec @@ -31,9 +31,9 @@ which NuGet packages are created (e.g. /repo/out/tools). --> - - - - + + + + \ No newline at end of file diff --git a/src/VirtualClient/VirtualClient.Examples/VirtualClient.Examples.csproj b/src/VirtualClient/VirtualClient.Examples/VirtualClient.Examples.csproj index 3e1a141714..99483dd6ba 100644 --- a/src/VirtualClient/VirtualClient.Examples/VirtualClient.Examples.csproj +++ b/src/VirtualClient/VirtualClient.Examples/VirtualClient.Examples.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 VirtualClient.Examples win-x64;linux-x64;win-arm64;linux-arm64 false diff --git a/src/VirtualClient/VirtualClient.IntegrationTests/VirtualClient.IntegrationTests.csproj b/src/VirtualClient/VirtualClient.IntegrationTests/VirtualClient.IntegrationTests.csproj index db4340e4db..22c5bbd42d 100644 --- a/src/VirtualClient/VirtualClient.IntegrationTests/VirtualClient.IntegrationTests.csproj +++ b/src/VirtualClient/VirtualClient.IntegrationTests/VirtualClient.IntegrationTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false false diff --git a/src/VirtualClient/VirtualClient.Main/ApiManager.cs b/src/VirtualClient/VirtualClient.Main/ApiManager.cs index 1a2721ab0a..a573f024c1 100644 --- a/src/VirtualClient/VirtualClient.Main/ApiManager.cs +++ b/src/VirtualClient/VirtualClient.Main/ApiManager.cs @@ -8,6 +8,7 @@ namespace VirtualClient using System.Reflection; using System.Threading; using System.Threading.Tasks; + using Asp.Versioning; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; @@ -60,7 +61,6 @@ private void ConfigureApplication(IWebHostBuilder hostBuilder, IServiceCollectio { hostBuilder.Configure(apiService => { - apiService.UseApiVersioning(); apiService.UseMiddleware(dependencies.GetService()); apiService.UseMvc(); }); diff --git a/src/VirtualClient/VirtualClient.Main/VirtualClient.Main.csproj b/src/VirtualClient/VirtualClient.Main/VirtualClient.Main.csproj index de5844f72f..4cc3269d0e 100644 --- a/src/VirtualClient/VirtualClient.Main/VirtualClient.Main.csproj +++ b/src/VirtualClient/VirtualClient.Main/VirtualClient.Main.csproj @@ -2,13 +2,12 @@ Exe - net8.0 + net9.0 VirtualClient VirtualClient win-x64;linux-x64;win-arm64;linux-arm64 false CA1416,NU5100,NU5118,NU5128,SA1118,NU5110,NU5111,IL2026,IL2104,IL2072 - en true diff --git a/src/VirtualClient/VirtualClient.Monitors.UnitTests/VirtualClient.Monitors.UnitTests.csproj b/src/VirtualClient/VirtualClient.Monitors.UnitTests/VirtualClient.Monitors.UnitTests.csproj index 8f6e4b4cfb..68f32de786 100644 --- a/src/VirtualClient/VirtualClient.Monitors.UnitTests/VirtualClient.Monitors.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.Monitors.UnitTests/VirtualClient.Monitors.UnitTests.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false false false diff --git a/src/VirtualClient/VirtualClient.Monitors/VirtualClient.Monitors.csproj b/src/VirtualClient/VirtualClient.Monitors/VirtualClient.Monitors.csproj index 7f078e0271..27419a5c49 100644 --- a/src/VirtualClient/VirtualClient.Monitors/VirtualClient.Monitors.csproj +++ b/src/VirtualClient/VirtualClient.Monitors/VirtualClient.Monitors.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 VirtualClient.Monitors VirtualClient.Monitors CA1416;CA2227,SA1116 diff --git a/src/VirtualClient/VirtualClient.Packaging/VirtualClient.Packaging.csproj b/src/VirtualClient/VirtualClient.Packaging/VirtualClient.Packaging.csproj index 0dfa187806..32a35f1b07 100644 --- a/src/VirtualClient/VirtualClient.Packaging/VirtualClient.Packaging.csproj +++ b/src/VirtualClient/VirtualClient.Packaging/VirtualClient.Packaging.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 true NU5100,NU5110,NU5111,NU5118,NU5128,NU5131 diff --git a/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-arm64.sh b/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-arm64.sh index 68c1295ae9..00f50b009f 100644 --- a/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-arm64.sh +++ b/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-arm64.sh @@ -10,7 +10,7 @@ fi # Define variables PACKAGE_NAME="virtualclient" REPO_ROOT="$(cd "$(dirname "$0")" && pwd)/../../../" -BUILD_DIR="$REPO_ROOT/out/bin/Release/ARM64/VirtualClient.Main/net8.0/linux-arm64/" +BUILD_DIR="$REPO_ROOT/out/bin/Release/ARM64/VirtualClient.Main/net9.0/linux-arm64/" DEB_DIR="$REPO_ROOT/out/packages/deb_arm64" OUT_DIR="$REPO_ROOT/out/packages/" diff --git a/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-x64.sh b/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-x64.sh index c300e9066f..1f9ccf415a 100644 --- a/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-x64.sh +++ b/src/VirtualClient/VirtualClient.Packaging/build-deb-linux-x64.sh @@ -10,7 +10,7 @@ fi # Define variables PACKAGE_NAME="virtualclient" REPO_ROOT="$(cd "$(dirname "$0")" && pwd)/../../../" -BUILD_DIR="$REPO_ROOT/out/bin/Release/x64/VirtualClient.Main/net8.0/linux-x64/" +BUILD_DIR="$REPO_ROOT/out/bin/Release/x64/VirtualClient.Main/net9.0/linux-x64/" DEB_DIR="$REPO_ROOT/out/packages/deb_x64" OUT_DIR="$REPO_ROOT/out/packages/" diff --git a/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-arm64.sh b/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-arm64.sh index 36d13dcaed..4229315003 100644 --- a/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-arm64.sh +++ b/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-arm64.sh @@ -10,7 +10,7 @@ fi # Define variables PACKAGE_NAME="virtualclient" REPO_ROOT="$(cd "$(dirname "$0")" && pwd)/../../../" -BUILD_DIR="$REPO_ROOT/out/bin/Release/ARM64/VirtualClient.Main/net8.0/linux-arm64/" +BUILD_DIR="$REPO_ROOT/out/bin/Release/ARM64/VirtualClient.Main/net9.0/linux-arm64/" RPM_DIR="$REPO_ROOT/out/packages/rpm_arm64" OUT_DIR="$REPO_ROOT/out/packages/" diff --git a/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-x64.sh b/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-x64.sh index 62fbd48b54..b08f97230b 100644 --- a/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-x64.sh +++ b/src/VirtualClient/VirtualClient.Packaging/build-rpm-linux-x64.sh @@ -10,7 +10,7 @@ fi # Define variables PACKAGE_NAME="virtualclient" REPO_ROOT="$(cd "$(dirname "$0")" && pwd)/../../../" -BUILD_DIR="$REPO_ROOT/out/bin/Release/x64/VirtualClient.Main/net8.0/linux-x64/" +BUILD_DIR="$REPO_ROOT/out/bin/Release/x64/VirtualClient.Main/net9.0/linux-x64/" RPM_DIR="$REPO_ROOT/out/packages/rpm_x64" OUT_DIR="$REPO_ROOT/out/packages/" diff --git a/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-arm64.dockerfile b/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-arm64.dockerfile index 15fd951888..dc90445749 100644 --- a/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-arm64.dockerfile +++ b/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-arm64.dockerfile @@ -2,4 +2,4 @@ ARG REPO=mcr.microsoft.com/dotnet/runtime # Ubuntu 20.04 image. FROM ${REPO}:5.0.9-focal-arm64v8 -COPY out/bin/Release/ARM64/VirtualClient.Main/net8.0/linux-arm64/publish/. ./VirtualClient/ \ No newline at end of file +COPY out/bin/Release/ARM64/VirtualClient.Main/net9.0/linux-arm64/publish/. ./VirtualClient/ \ No newline at end of file diff --git a/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-x64.dockerfile b/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-x64.dockerfile index e3c78138f9..81d66399b0 100644 --- a/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-x64.dockerfile +++ b/src/VirtualClient/VirtualClient.Packaging/dockerfiles/linux-x64.dockerfile @@ -2,4 +2,4 @@ ARG REPO=mcr.microsoft.com/dotnet/runtime # Ubuntu 20.04 image. FROM ${REPO}:5.0.9-focal-amd64 -COPY out/bin/Release/x64/VirtualClient.Main/net8.0/linux-x64/publish/. ./VirtualClient/ \ No newline at end of file +COPY out/bin/Release/x64/VirtualClient.Main/net9.0/linux-x64/publish/. ./VirtualClient/ \ No newline at end of file diff --git a/src/VirtualClient/VirtualClient.Packaging/dockerfiles/win-x64.dockerfile b/src/VirtualClient/VirtualClient.Packaging/dockerfiles/win-x64.dockerfile index 95e143654f..561d8fe644 100644 --- a/src/VirtualClient/VirtualClient.Packaging/dockerfiles/win-x64.dockerfile +++ b/src/VirtualClient/VirtualClient.Packaging/dockerfiles/win-x64.dockerfile @@ -2,4 +2,4 @@ ARG REPO=mcr.microsoft.com/windows/nanoserver # Windows nanoserver 20H2 image. FROM ${REPO}:ltsc2022 -COPY out/bin/Release/x64/VirtualClient.Main/net8.0/win-x64/publish/ C:/VirtualClient/ \ No newline at end of file +COPY out/bin/Release/x64/VirtualClient.Main/net9.0/win-x64/publish/ C:/VirtualClient/ \ No newline at end of file diff --git a/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.Framework.nuspec b/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.Framework.nuspec index 43d416b9b2..8aa0ea84d1 100644 --- a/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.Framework.nuspec +++ b/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.Framework.nuspec @@ -11,12 +11,11 @@ Microsoft Azure VirtualClient Workload Benchmark - + - @@ -25,7 +24,6 @@ - @@ -44,56 +42,56 @@ AnyCPU ============================================================================================= --> - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.TestFramework.nuspec b/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.TestFramework.nuspec index 71af78b268..1b7e48811d 100644 --- a/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.TestFramework.nuspec +++ b/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.TestFramework.nuspec @@ -11,7 +11,7 @@ Microsoft Azure VirtualClient Workload Benchmark - + @@ -24,46 +24,46 @@ AnyCPU ============================================================================================= --> - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + \ No newline at end of file diff --git a/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.nuspec b/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.nuspec index 401940c683..668c9d3c11 100644 --- a/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.nuspec +++ b/src/VirtualClient/VirtualClient.Packaging/nuspec/VirtualClient.nuspec @@ -11,7 +11,7 @@ Microsoft Azure VirtualClient Workload Benchmark - + @@ -26,25 +26,25 @@ win-x64 ============================================================================================= --> - + - + - + - + \ No newline at end of file diff --git a/src/VirtualClient/VirtualClient.TestExtensions/AutoFixtureExtensions.cs b/src/VirtualClient/VirtualClient.TestExtensions/AutoFixtureExtensions.cs index d65b24f42a..782856ef37 100644 --- a/src/VirtualClient/VirtualClient.TestExtensions/AutoFixtureExtensions.cs +++ b/src/VirtualClient/VirtualClient.TestExtensions/AutoFixtureExtensions.cs @@ -3,13 +3,10 @@ namespace VirtualClient.TestExtensions { - using System.Diagnostics.CodeAnalysis; using System.IO; using System.Reflection; - using System.Security; using System.Security.Cryptography.X509Certificates; using AutoFixture; - using VirtualClient.Common.Extensions; /// /// Extension methods for instances and for general @@ -49,7 +46,6 @@ public static Fixture SetupCertificateMocks(this Fixture fixture) /// /// A mock/test certificate. /// - [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "The certificate password parameter cannot be disposed in this context.")] private static X509Certificate2 CreateCertificate(bool withPrivateKey = false) { X509Certificate2 certificate = null; @@ -57,15 +53,16 @@ private static X509Certificate2 CreateCertificate(bool withPrivateKey = false) if (withPrivateKey) { - certificate = new X509Certificate2( + certificate = X509CertificateLoader.LoadPkcs12( File.ReadAllBytes(Path.Combine(resourcesDirectory, "test-certificate.private")), - string.Empty.ToSecureString(), + null, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); } else { - certificate = new X509Certificate2( - File.ReadAllBytes(Path.Combine(resourcesDirectory, "test-certificate.private"))); + certificate = X509CertificateLoader.LoadPkcs12( + File.ReadAllBytes(Path.Combine(resourcesDirectory, "test-certificate.private")), + null); } return certificate; diff --git a/src/VirtualClient/VirtualClient.TestExtensions/VirtualClient.TestExtensions.csproj b/src/VirtualClient/VirtualClient.TestExtensions/VirtualClient.TestExtensions.csproj index 02c4265a67..5657943967 100644 --- a/src/VirtualClient/VirtualClient.TestExtensions/VirtualClient.TestExtensions.csproj +++ b/src/VirtualClient/VirtualClient.TestExtensions/VirtualClient.TestExtensions.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 VirtualClient.TestExtensions VirtualClient CA2214,CS1591,SA1508 diff --git a/src/VirtualClient/VirtualClient.TestFramework.UnitTests/VirtualClient.TestFramework.UnitTests.csproj b/src/VirtualClient/VirtualClient.TestFramework.UnitTests/VirtualClient.TestFramework.UnitTests.csproj index 15a3badac0..06c1f3240f 100644 --- a/src/VirtualClient/VirtualClient.TestFramework.UnitTests/VirtualClient.TestFramework.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.TestFramework.UnitTests/VirtualClient.TestFramework.UnitTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false true diff --git a/src/VirtualClient/VirtualClient.TestFramework/VirtualClient.TestFramework.csproj b/src/VirtualClient/VirtualClient.TestFramework/VirtualClient.TestFramework.csproj index 13dae23b67..a3898fc9e8 100644 --- a/src/VirtualClient/VirtualClient.TestFramework/VirtualClient.TestFramework.csproj +++ b/src/VirtualClient/VirtualClient.TestFramework/VirtualClient.TestFramework.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 VirtualClient.TestFramework VirtualClient CA2214,CS1591,SA1508 diff --git a/src/VirtualClient/VirtualClient.UnitTests/OptionFactoryTests.cs b/src/VirtualClient/VirtualClient.UnitTests/OptionFactoryTests.cs index 2fd6b19302..349113308f 100644 --- a/src/VirtualClient/VirtualClient.UnitTests/OptionFactoryTests.cs +++ b/src/VirtualClient/VirtualClient.UnitTests/OptionFactoryTests.cs @@ -1101,7 +1101,7 @@ private static X509Certificate2 GenerateMockCertificate() // Use the certificate for testing, e.g., with HttpClientHandler or other scenarios. - return new X509Certificate2(certBytes, "password"); + return X509CertificateLoader.LoadPkcs12(certBytes, "password"); } } diff --git a/src/VirtualClient/VirtualClient.UnitTests/VirtualClient.UnitTests.csproj b/src/VirtualClient/VirtualClient.UnitTests/VirtualClient.UnitTests.csproj index a02ebb3438..7cec829e32 100644 --- a/src/VirtualClient/VirtualClient.UnitTests/VirtualClient.UnitTests.csproj +++ b/src/VirtualClient/VirtualClient.UnitTests/VirtualClient.UnitTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false false false diff --git a/website/docs/developing/0020-develop-extensions.md b/website/docs/developing/0020-develop-extensions.md index 5da5f85792..a4dfe7e441 100644 --- a/website/docs/developing/0020-develop-extensions.md +++ b/website/docs/developing/0020-develop-extensions.md @@ -25,7 +25,7 @@ The following example extensions repo can be used for reference to the details d - net8.0 + net9.0 CRC.VirtualClient.Extensions @@ -336,7 +336,7 @@ at the bottom of the [General Developer Guide](./0010-develop-guide.md) for more Note that in this scenario, we are executing the debugging scenario from Visual Studio in the extensions project. It is a good idea (for consistency) to reference a "just-built" version of the Virtual Client runtime executable in many cases. This is typically done by cloning the Virtual Client platform repo, building it and referencing the - VirtualClient.exe from the built output location (e.g. /\{repoDir\}/out/bin/Debug/x64/VirtualClient.Main/net8.0/VirtualClient.exe). + VirtualClient.exe from the built output location (e.g. /\{repoDir\}/out/bin/Debug/x64/VirtualClient.Main/net9.0/VirtualClient.exe). ``` json # A custom profile is created and placed on the file system somewhere (typically somewhere outside of the source directory). In this profile, the @@ -379,7 +379,7 @@ at the bottom of the [General Developer Guide](./0010-develop-guide.md) for more e.g. # Example output directory for extensions - S:\one\crc-virtualclient-examples\out\bin\Release\AnyCPU\CRC.VirtualClient.Extensions.Actions\net8.0 + S:\one\crc-virtualclient-examples\out\bin\Release\AnyCPU\CRC.VirtualClient.Extensions.Actions\net9.0 ``` **Setup Visual Studio for debugging:** @@ -393,13 +393,13 @@ at the bottom of the [General Developer Guide](./0010-develop-guide.md) for more * Launch = Executable * Executable = \{PathToVirtualClientExe\} - (e.g. ```S:\one\crc-air-workloads\out\bin\Debug\x64\VirtualClient.Main\net8.0\VirtualClient.exe```) + (e.g. ```S:\one\crc-air-workloads\out\bin\Debug\x64\VirtualClient.Main\net9.0\VirtualClient.exe```) * Application arguments = \{VirtualClientCommandLine\} (e.g. `--profile=S:\one\debugging\DEBUG-EXAMPLE-WORKLOAD.json --profile=MONITORS.NONE.json --packages="https://virtualclient..."`) * Environment variables = Add the `VC_LIBRARY_PATH` variable and the path to your built extensions binaries. - (e.g. `VC_LIBRARY_PATH = S:\one\crc-virtualclient-examples\out\bin\Debug\x64\CRC.VirtualClient.Extensions.Actions\net8.0`) + (e.g. `VC_LIBRARY_PATH = S:\one\crc-virtualclient-examples\out\bin\Debug\x64\CRC.VirtualClient.Extensions.Actions\net9.0`) 4. Place a breakpoint in the code where you like (e.g. in the InitializeAsync or ExecuteAsync methods of your component). diff --git a/website/docs/guides/0001-getting-started.md b/website/docs/guides/0001-getting-started.md index ee673a7183..16d3edb8e2 100644 --- a/website/docs/guides/0001-getting-started.md +++ b/website/docs/guides/0001-getting-started.md @@ -97,7 +97,7 @@ programs such as 'unzip' or '7zip'. If preferable, the Virtual Client source code can be built on your local system. This is useful for picking up the absolute latest changes to the source code and for testing changes locally. Before attempting to build the Virtual Client repo, ensure the fo -- [Install the .NET SDK 8.0.X](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) +- [Install the .NET SDK 9.0.x](https://dotnet.microsoft.com/en-us/download/dotnet/9.0) - Build artifacts are output to the following locations. The 'bin' directory is where all compiled binaries/executables are output. The 'obj' directory will contain intermediate files used during compilation. The 'packages' directory will contain any packages that are created during build + packaging processes. @@ -130,10 +130,10 @@ The following section provides instructions for building on Windows systems. - The build process will create ready-to-run builds of the Virtual Client for all supported platforms and architectures. Virtual Client executable and binaries can be found in the repo 'out' directory in corresponding architecture/runtimes folder locations. ```bash - {rootdir}\out\bin\Release\ARM64\VirtualClient.Main\net8.0\linux-arm64\publish\VirtualClient - {rootdir}\out\bin\Release\ARM64\VirtualClient.Main\net8.0\win-arm64\publish\VirtualClient.exe - {rootdir}\out\bin\Release\x64\VirtualClient.Main\net8.0\linux-x64\publish\VirtualClient - {rootdir}\out\bin\Release\x64\VirtualClient.Main\net8.0\win-x64\publish\VirtualClient.exe + {rootdir}\out\bin\Release\ARM64\VirtualClient.Main\net9.0\linux-arm64\publish\VirtualClient + {rootdir}\out\bin\Release\ARM64\VirtualClient.Main\net9.0\win-arm64\publish\VirtualClient.exe + {rootdir}\out\bin\Release\x64\VirtualClient.Main\net9.0\linux-x64\publish\VirtualClient + {rootdir}\out\bin\Release\x64\VirtualClient.Main\net9.0\win-x64\publish\VirtualClient.exe ``` - VirtualClient is a self-contained .NET application. The application can be run from the build output locations noted above or copied to another system. When simply copy the contents of the `/publish/` folder specific to the platform/architecture to the system on which you want to run. diff --git a/website/docs/guides/0003-getting-started-docker.md b/website/docs/guides/0003-getting-started-docker.md index a67da7392c..8bd58b879c 100644 --- a/website/docs/guides/0003-getting-started-docker.md +++ b/website/docs/guides/0003-getting-started-docker.md @@ -27,7 +27,7 @@ ltsc2022: Pulling from windows/nanoserver Digest: sha256:79fb1372fc5b3aeeca73603d5eadd0a8fb7d4f0b77bd29498696c03bb6de1fdf Status: Downloaded newer image for mcr.microsoft.com/windows/nanoserver:ltsc2022 ---> 0db1879370e5 -Step 3/3 : COPY out/bin/Release/x64/VirtualClient.Main/net8.0/win-x64/publish/ C:/VirtualClient/ +Step 3/3 : COPY out/bin/Release/x64/VirtualClient.Main/net9.0/win-x64/publish/ C:/VirtualClient/ ---> 7c2fe2466138 Successfully built 7c2fe2466138 Successfully tagged test-win-x64:1.0.1.3 diff --git a/website/docs/guides/0221-usage-extensions.md b/website/docs/guides/0221-usage-extensions.md index f43477c260..01e46a4e59 100644 --- a/website/docs/guides/0221-usage-extensions.md +++ b/website/docs/guides/0221-usage-extensions.md @@ -160,11 +160,11 @@ is covered more in-depth in the `Developing Extensions` documentation noted at t ``` bash # e.g. # Suppose that the binaries exist in an alternate location (e.g. a build output location). - /home/user/repos/any.team.extensions/out/bin/Debug/x64/Any.Team.VirtualClient.Extensions/net8.0/linux-x64/publish + /home/user/repos/any.team.extensions/out/bin/Debug/x64/Any.Team.VirtualClient.Extensions/net9.0/linux-x64/publish # Virtual Client can be instructed to search for extensions binaries in this alternate # location in addition to the default 'packages' folder location. - ~/virtualclient.1.15.0/linux-x64$ export VC_LIBRARY_PATH=/home/user/repos/any.team.extensions/out/bin/Debug/x64/Any.Team.VirtualClient.Extensions/net8.0/linux-x64/publish + ~/virtualclient.1.15.0/linux-x64$ export VC_LIBRARY_PATH=/home/user/repos/any.team.extensions/out/bin/Debug/x64/Any.Team.VirtualClient.Extensions/net9.0/linux-x64/publish ~/virtualclient.1.15.0/linux-x64$ VirtualClient --profile=/home/user/repos/any.team.extensions/src/Any.Team.VirtualClient.Extensions/profiles/PERF-CUSTOM-WORKLOAD-1.json ... ```