From ff5d67867783440b1b394f5c707491016101f214 Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Sat, 27 Jun 2026 20:44:14 +0200 Subject: [PATCH 1/8] Save work before starting dotnet-version-upgrade --- Samples.sln | 53 ---------------------------------------------------- Samples.slnx | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 53 deletions(-) delete mode 100644 Samples.sln create mode 100644 Samples.slnx diff --git a/Samples.sln b/Samples.sln deleted file mode 100644 index 872d045..0000000 --- a/Samples.sln +++ /dev/null @@ -1,53 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.5.33627.172 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Money", "money\Money.csproj", "{11EDF872-A04D-4F75-A1BF-71168DC86AF3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExpectedExceptionExample", "ExpectedExceptionExample\ExpectedExceptionExample.csproj", "{A6E1D464-9AAF-4CA9-A818-819739132281}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AssertSyntax", "syntax\AssertSyntax.csproj", "{06F46FA2-687B-4B46-A912-C1B0B4CC1B20}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{51996B31-851B-463C-8B57-A7E51CA034EC}" - ProjectSection(SolutionItems) = preProject - .gitattributes = .gitattributes - .gitignore = .gitignore - BUILDING.md = BUILDING.md - LICENSE.txt = LICENSE.txt - nuget.config = nuget.config - README.md = README.md - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataDrivenTests", "DataDrivenTests\DataDrivenTests.csproj", "{FBBC6F15-E718-4080-832C-9D1F4B7A352A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {11EDF872-A04D-4F75-A1BF-71168DC86AF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {11EDF872-A04D-4F75-A1BF-71168DC86AF3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {11EDF872-A04D-4F75-A1BF-71168DC86AF3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {11EDF872-A04D-4F75-A1BF-71168DC86AF3}.Release|Any CPU.Build.0 = Release|Any CPU - {A6E1D464-9AAF-4CA9-A818-819739132281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6E1D464-9AAF-4CA9-A818-819739132281}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6E1D464-9AAF-4CA9-A818-819739132281}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6E1D464-9AAF-4CA9-A818-819739132281}.Release|Any CPU.Build.0 = Release|Any CPU - {06F46FA2-687B-4B46-A912-C1B0B4CC1B20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {06F46FA2-687B-4B46-A912-C1B0B4CC1B20}.Debug|Any CPU.Build.0 = Debug|Any CPU - {06F46FA2-687B-4B46-A912-C1B0B4CC1B20}.Release|Any CPU.ActiveCfg = Release|Any CPU - {06F46FA2-687B-4B46-A912-C1B0B4CC1B20}.Release|Any CPU.Build.0 = Release|Any CPU - {FBBC6F15-E718-4080-832C-9D1F4B7A352A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBBC6F15-E718-4080-832C-9D1F4B7A352A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBBC6F15-E718-4080-832C-9D1F4B7A352A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBBC6F15-E718-4080-832C-9D1F4B7A352A}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {381F12E7-0FE3-4A81-8427-2BA14C454821} - EndGlobalSection -EndGlobal diff --git a/Samples.slnx b/Samples.slnx new file mode 100644 index 0000000..3ec6028 --- /dev/null +++ b/Samples.slnx @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + From 477b6e1b96ac9aaa40d9af20f790157a429a7238 Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Sat, 27 Jun 2026 20:48:16 +0200 Subject: [PATCH 2/8] Commit changes before fixing global.json file(s). --- .../dotnet-version-upgrade/assessment.csv | 3 + .../dotnet-version-upgrade/assessment.json | 137 ++ .../dotnet-version-upgrade/assessment.md | 134 ++ .../dependencies-health.json | 1377 +++++++++++++++++ .../scenarios/dotnet-version-upgrade/plan.md | 38 + .../scenario-instructions.md | 35 + .../dotnet-version-upgrade/scenario.json | 14 + .../scenarios/dotnet-version-upgrade/tasks.md | 12 + .../tasks/01-prerequisites/task.md | 8 + .../tasks/02-upgrade-project/task.md | 14 + .../dotnet-version-upgrade/upgrade-options.md | 12 + 11 files changed, 1784 insertions(+) create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/assessment.json create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/assessment.md create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/plan.md create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/scenario.json create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks.md create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv new file mode 100644 index 0000000..f5cd9ab --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv @@ -0,0 +1,3 @@ +Issue ID,Description,State,Severity,Story Points,Project Path,Location Kind,Path,Line,Column,Incident ID,Help Link,Assembly Name,Assembly Version,Assembly Public Key,Snippet +NuGet.0006,NuGet package source mappings are recommended,Active,Information,1,DataDrivenTests.csproj,File,C:\repos\nunit\nunit-csharp-samples\NuGet.config,,,,,,,,Found 1 files matching the rule: NuGet.config +Project.0002,Project's target framework(s) needs to be changed,Active,Mandatory,1,DataDrivenTests.csproj,File,DataDrivenTests.csproj,,,,,,,,Current target framework: net6.0 Recommended target framework: net10.0 diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.json b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.json new file mode 100644 index 0000000..0c40644 --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.json @@ -0,0 +1,137 @@ +{ + "settings": { + "components": { + "code": true, + "binaries": false + }, + "targetId": "net10.0", + "targetDisplayName": ".NETCoreApp,Version=v10.0" + }, + "analysisStartTime": "2026-06-27T18:44:40.7414281Z", + "analysisEndTime": "2026-06-27T18:44:41.2520051Z", + "privacyModeHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2270980", + "stats": { + "summary": { + "projects": 1, + "issues": 2, + "incidents": 2, + "effort": 2 + }, + "charts": { + "severity": { + "Mandatory": 1, + "Optional": 0, + "Potential": 0, + "Information": 1 + }, + "category": { + "NuGet": 1, + "Project": 1 + } + } + }, + "projects": [ + { + "path": "DataDrivenTests.csproj", + "startingProject": true, + "issues": 2, + "storyPoints": 2, + "properties": { + "appName": "DataDrivenTests", + "projectKind": "DotNetCoreApp", + "frameworks": [ + "net6.0" + ], + "languages": [ + "C#" + ], + "tools": [ + "MSBuild" + ], + "isSdkStyle": true, + "numberOfFiles": 4, + "numberOfCodeFiles": 2, + "linesTotal": 1817, + "linesOfCode": 37, + "totalApiScanned": 33, + "minLinesOfCodeToChange": 0, + "maxLinesOfCodeToChange": 0 + }, + "ruleInstances": [ + { + "incidentId": "b592fc9c-0ca3-4bc2-9001-182e93043a70", + "ruleId": "NuGet.0006", + "projectPath": "DataDrivenTests.csproj", + "state": "Active", + "location": { + "snippetModel": { + "unrestricted": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n", + "protected": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n" + }, + "kind": "File", + "path": "C:\\repos\\nunit\\nunit-csharp-samples\\NuGet.config", + "snippet": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n", + "protectedSnippet": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n" + } + }, + { + "incidentId": "cb01fe95-a6c3-4fc7-a731-6bad2cf9f664", + "ruleId": "Project.0002", + "projectPath": "DataDrivenTests.csproj", + "state": "Active", + "location": { + "snippetModel": { + "unrestricted": "Current target framework: net6.0\nRecommended target framework: net10.0", + "protected": "Current target framework: net6.0\nRecommended target framework: net10.0" + }, + "kind": "File", + "path": "DataDrivenTests.csproj", + "snippet": "Current target framework: net6.0\nRecommended target framework: net10.0", + "protectedSnippet": "Current target framework: net6.0\nRecommended target framework: net10.0", + "properties": { + "CurrentTargetFramework": "net6.0", + "RecommendedTargetFramework": "net10.0" + } + } + } + ], + "features": [] + } + ], + "rules": { + "NuGet.0006": { + "id": "NuGet.0006", + "isFeature": false, + "description": "NuGet package source mappings are recommended.\n\nWhen NuGet.config contains multiple package sources, Package Source Mapping is a tool that can be used to improve your supply chain security, especially if you use a mix of public and private package sources.\n\nBy default, NuGet will search all configured package sources when it needs to download a package. When a package exists on multiple sources, it may not be deterministic which source the package will be downloaded from. With Package Source Mapping, you can filter, per package, which source(s) NuGet will search.", + "label": "NuGet package source mappings are recommended", + "severity": "Information", + "effort": 1, + "links": [ + { + "url": "https://go.microsoft.com/fwlink/?linkid=2288407", + "isCustom": false + } + ] + }, + "Project.0002": { + "id": "Project.0002", + "isFeature": false, + "description": "Project\u0027s target framework(s) needs to be changed to the new target framework that you selected for this upgrade.\n\nDuring upgrade target framework will be adjusted to corresponding platform when applicable. In some cases project would result in multiple target frameworks after the upgrade if it was using features that now have their own platforms in modern .NET frameworks (windows, iOS, Android etc).", + "label": "Project\u0027s target framework(s) needs to be changed", + "severity": "Mandatory", + "effort": 1, + "links": [ + { + "title": "Overview of porting from .NET Framework to .NET", + "url": "https://go.microsoft.com/fwlink/?linkid=2265227", + "isCustom": false + }, + { + "title": ".NET project SDKs", + "url": "https://go.microsoft.com/fwlink/?linkid=2265226", + "isCustom": false + } + ] + } + } +} \ No newline at end of file diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.md b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.md new file mode 100644 index 0000000..67480c4 --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.md @@ -0,0 +1,134 @@ +# Projects and dependencies analysis + +This document provides a comprehensive overview of the projects and their dependencies in the context of upgrading to .NETCoreApp,Version=v10.0. + +## Table of Contents + +- [Executive Summary](#executive-Summary) + - [Highlevel Metrics](#highlevel-metrics) + - [Projects Compatibility](#projects-compatibility) + - [Package Compatibility](#package-compatibility) + - [API Compatibility](#api-compatibility) + - [Binding Redirect Configuration](#binding-redirect-configuration) +- [Aggregate NuGet packages details](#aggregate-nuget-packages-details) +- [Top API Migration Challenges](#top-api-migration-challenges) + - [Technologies and Features](#technologies-and-features) + - [Most Frequent API Issues](#most-frequent-api-issues) +- [Projects Relationship Graph](#projects-relationship-graph) +- [Project Details](#project-details) + + - [DataDrivenTests.csproj](#datadriventestscsproj) + + +## Executive Summary + +### Highlevel Metrics + +| Metric | Count | Status | +| :--- | :---: | :--- | +| Total Projects | 1 | All require upgrade | +| Total NuGet Packages | 0 | All compatible | +| Total Code Files | 2 | | +| Total Code Files with Incidents | 2 | | +| Total Lines of Code | 37 | | +| Total Number of Issues | 2 | | +| Estimated LOC to modify | 0+ | at least 0.0% of codebase | + +### Projects Compatibility + +| Project | Target Framework | Difficulty | Package Issues | API Issues | Binding Issues | Est. LOC Impact | Description | +| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :--- | +| [DataDrivenTests.csproj](#datadriventestscsproj) | net6.0 | 🟢 Low | 1 | 0 | 0 | | DotNetCoreApp, Sdk Style = True | + +### Package Compatibility + +| Status | Count | Percentage | +| :--- | :---: | :---: | +| ✅ Compatible | 0 | 0.0% | +| ⚠️ Incompatible | 0 | 0.0% | +| 🔄 Upgrade Recommended | 0 | 0.0% | +| ***Total NuGet Packages*** | ***0*** | ***100%*** | + +### API Compatibility + +| Category | Count | Impact | +| :--- | :---: | :--- | +| 🔴 Binary Incompatible | 0 | High - Require code changes | +| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing | +| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime | +| ✅ Compatible | 33 | | +| ***Total APIs Analyzed*** | ***33*** | | + +## Aggregate NuGet packages details + +| Package | Current Version | Suggested Version | Projects | Description | +| :--- | :---: | :---: | :--- | :--- | + +## Top API Migration Challenges + +### Technologies and Features + +| Technology | Issues | Percentage | Migration Path | +| :--- | :---: | :---: | :--- | + +### Most Frequent API Issues + +| API | Count | Percentage | Category | +| :--- | :---: | :---: | :--- | + +## Projects Relationship Graph + +Legend: +📦 SDK-style project +⚙️ Classic project + +```mermaid +flowchart LR + P1["📦 DataDrivenTests.csproj
net6.0"] + click P1 "#datadriventestscsproj" + +``` + +## Project Details + + +### DataDrivenTests.csproj + +#### Project Info + +- **Current Target Framework:** net6.0 +- **Proposed Target Framework:** net10.0 +- **SDK-style**: True +- **Project Kind:** DotNetCoreApp +- **Dependencies**: 0 +- **Dependants**: 0 +- **Number of Files**: 4 +- **Number of Files with Incidents**: 2 +- **Lines of Code**: 37 +- **Estimated LOC to modify**: 0+ (at least 0.0% of the project) + +#### Dependency Graph + +Legend: +📦 SDK-style project +⚙️ Classic project + +```mermaid +flowchart TB + subgraph current["DataDrivenTests.csproj"] + MAIN["📦 DataDrivenTests.csproj
net6.0"] + click MAIN "#datadriventestscsproj" + end + +``` + +### API Compatibility + +| Category | Count | Impact | +| :--- | :---: | :--- | +| 🔴 Binary Incompatible | 0 | High - Require code changes | +| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing | +| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime | +| ✅ Compatible | 33 | | +| ***Total APIs Analyzed*** | ***33*** | | + diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json b/.github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json new file mode 100644 index 0000000..9c5b253 --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json @@ -0,0 +1,1377 @@ +{ + "packageGovernance": { + "totalDistinctPackages": 5, + "totalVersionDriftInstances": 0, + "targetFramework": "net10.0", + "packages": [ + { + "name": "coverlet.collector", + "totalProjectCount": 1, + "distinctVersionCount": 1, + "recommendedVersion": "6.0.0", + "isCompatible": false, + "versions": [ + { + "version": "6.0.0", + "projects": [ + "DataDrivenTests" + ], + "isRecommended": true + } + ] + }, + { + "name": "Microsoft.NET.Test.Sdk", + "totalProjectCount": 1, + "distinctVersionCount": 1, + "recommendedVersion": "17.7.2", + "isCompatible": false, + "versions": [ + { + "version": "17.7.2", + "projects": [ + "DataDrivenTests" + ], + "isRecommended": true + } + ] + }, + { + "name": "NUnit", + "totalProjectCount": 1, + "distinctVersionCount": 1, + "recommendedVersion": "4.0.0-dev-07984", + "isCompatible": false, + "versions": [ + { + "version": "4.0.0-dev-07984", + "projects": [ + "DataDrivenTests" + ], + "isRecommended": true + } + ] + }, + { + "name": "NUnit.Analyzers", + "totalProjectCount": 1, + "distinctVersionCount": 1, + "recommendedVersion": "3.8.0", + "isCompatible": false, + "versions": [ + { + "version": "3.8.0", + "projects": [ + "DataDrivenTests" + ], + "isRecommended": true + } + ] + }, + { + "name": "NUnit3TestAdapter", + "totalProjectCount": 1, + "distinctVersionCount": 1, + "recommendedVersion": "4.5.0", + "isCompatible": false, + "versions": [ + { + "version": "4.5.0", + "projects": [ + "DataDrivenTests" + ], + "isRecommended": true + } + ] + } + ] + }, + "projects": [ + { + "name": "DataDrivenTests", + "path": "DataDrivenTests.csproj", + "isSdk": true, + "currentFrameworks": [ + "net6.0" + ], + "targetFramework": "net10.0", + "dependencies": { + "packages": [ + { + "name": "Microsoft.NET.Test.Sdk", + "version": "17.7.2", + "isTransitive": false, + "isGlobal": false, + "isImplicit": false, + "definedIn": [ + { + "path": "DataDrivenTests.csproj" + } + ], + "compatibility": "unknown" + }, + { + "name": "NUnit", + "version": "4.0.0-dev-07984", + "isTransitive": false, + "isGlobal": false, + "isImplicit": false, + "definedIn": [ + { + "path": "DataDrivenTests.csproj" + } + ], + "compatibility": "unknown" + }, + { + "name": "NUnit.Analyzers", + "version": "3.8.0", + "isTransitive": false, + "isGlobal": false, + "isImplicit": false, + "definedIn": [ + { + "path": "DataDrivenTests.csproj" + } + ], + "compatibility": "unknown" + }, + { + "name": "NUnit3TestAdapter", + "version": "4.5.0", + "isTransitive": false, + "isGlobal": false, + "isImplicit": false, + "definedIn": [ + { + "path": "DataDrivenTests.csproj" + } + ], + "compatibility": "unknown" + }, + { + "name": "coverlet.collector", + "version": "6.0.0", + "isTransitive": false, + "isGlobal": false, + "isImplicit": false, + "definedIn": [ + { + "path": "DataDrivenTests.csproj" + } + ], + "compatibility": "unknown" + } + ], + "assemblies": [ + { + "name": "System.Text.Encodings.Web", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encodings.Web.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.VisualBasic", + "version": "10.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.VisualBasic.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.WebClient", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebClient.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.Win32.Registry", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.Win32.Registry.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.FileSystem.Watcher", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.Watcher.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Channels", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Channels.dll", + "compatibility": "valid" + }, + { + "name": "System.Web", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Web.dll", + "compatibility": "valid" + }, + { + "name": "System.Buffers", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Buffers.dll", + "compatibility": "valid" + }, + { + "name": "System.ValueTuple", + "version": "4.0.3.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ValueTuple.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Cryptography.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.TraceSource", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.TraceSource.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Serialization.Formatters", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Formatters.dll", + "compatibility": "valid" + }, + { + "name": "WindowsBase", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\WindowsBase.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Cryptography.Encoding", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Encoding.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Cryptography.Algorithms", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Algorithms.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.Tracing", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Tracing.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Intrinsics", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Intrinsics.dll", + "compatibility": "valid" + }, + { + "name": "System.Core", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Core.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.StackTrace", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.StackTrace.dll", + "compatibility": "valid" + }, + { + "name": "System.Text.Encoding.Extensions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encoding.Extensions.dll", + "compatibility": "valid" + }, + { + "name": "System.Transactions.Local", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Transactions.Local.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.FileSystem.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Thread", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Thread.dll", + "compatibility": "valid" + }, + { + "name": "System.Globalization.Calendars", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Globalization.Calendars.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Principal", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Principal.dll", + "compatibility": "valid" + }, + { + "name": "System.Globalization.Extensions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Globalization.Extensions.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.WebSockets.Client", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebSockets.Client.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.Win32.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.Win32.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.Serialization", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.Serialization.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.NameResolution", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.NameResolution.dll", + "compatibility": "valid" + }, + { + "name": "System.Resources.Writer", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Resources.Writer.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Tasks.Parallel", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.Parallel.dll", + "compatibility": "valid" + }, + { + "name": "System.ComponentModel.Annotations", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.Annotations.dll", + "compatibility": "valid" + }, + { + "name": "System.Linq", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.dll", + "compatibility": "valid" + }, + { + "name": "System.ObjectModel", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ObjectModel.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.WebSockets", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebSockets.dll", + "compatibility": "valid" + }, + { + "name": "System.Transactions", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Transactions.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.Process", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Process.dll", + "compatibility": "valid" + }, + { + "name": "netstandard", + "version": "2.1.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\netstandard.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.dll", + "compatibility": "valid" + }, + { + "name": "System.Collections.Immutable", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.Immutable.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Serialization.Json", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Json.dll", + "compatibility": "valid" + }, + { + "name": "System.Collections", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.FileSystem.DriveInfo", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.DriveInfo.dll", + "compatibility": "valid" + }, + { + "name": "System.Memory", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Memory.dll", + "compatibility": "valid" + }, + { + "name": "System.ComponentModel", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.NetworkInformation", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.NetworkInformation.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Serialization", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.dll", + "compatibility": "valid" + }, + { + "name": "System.Linq.Parallel", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.Parallel.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Http.Json", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Http.Json.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Tasks", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.TypeExtensions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.TypeExtensions.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Tasks.Extensions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.Extensions.dll", + "compatibility": "valid" + }, + { + "name": "System.Linq.Expressions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.Expressions.dll", + "compatibility": "valid" + }, + { + "name": "System.ComponentModel.TypeConverter", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.TypeConverter.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.Tools", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Tools.dll", + "compatibility": "valid" + }, + { + "name": "System.Data.Common", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Data.Common.dll", + "compatibility": "valid" + }, + { + "name": "System.Formats.Asn1", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Formats.Asn1.dll", + "compatibility": "valid" + }, + { + "name": "System.Resources.Reader", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Resources.Reader.dll", + "compatibility": "valid" + }, + { + "name": "System.Resources.ResourceManager", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Resources.ResourceManager.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Http", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Http.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.Compression.FileSystem", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.FileSystem.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.CSharp", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.CSharp.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Cryptography.Cng", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Cng.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Sockets", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Sockets.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.InteropServices", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.InteropServices.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Timer", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Timer.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.CompilerServices.VisualC", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.CompilerServices.VisualC.dll", + "compatibility": "valid" + }, + { + "name": "System.Web.HttpUtility", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Web.HttpUtility.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Ping", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Ping.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Claims", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Claims.dll", + "compatibility": "valid" + }, + { + "name": "System.Collections.Concurrent", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.Concurrent.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Serialization.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Loader", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Loader.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.ReaderWriter", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.ReaderWriter.dll", + "compatibility": "valid" + }, + { + "name": "System.ComponentModel.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.IsolatedStorage", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.IsolatedStorage.dll", + "compatibility": "valid" + }, + { + "name": "System.Numerics.Vectors", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Numerics.Vectors.dll", + "compatibility": "valid" + }, + { + "name": "System.AppContext", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.AppContext.dll", + "compatibility": "valid" + }, + { + "name": "System.Numerics", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Numerics.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.Contracts", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Contracts.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.AccessControl", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.AccessControl.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Principal.Windows", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Principal.Windows.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.XPath.XDocument", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XPath.XDocument.dll", + "compatibility": "valid" + }, + { + "name": "System.Collections.NonGeneric", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.NonGeneric.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.DispatchProxy", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.DispatchProxy.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.Pipes", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Pipes.dll", + "compatibility": "valid" + }, + { + "name": "System.Security", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.MemoryMappedFiles", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.MemoryMappedFiles.dll", + "compatibility": "valid" + }, + { + "name": "System.Configuration", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Configuration.dll", + "compatibility": "valid" + }, + { + "name": "System.Data", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Data.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.ThreadPool", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.ThreadPool.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.Compression.ZipFile", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.ZipFile.dll", + "compatibility": "valid" + }, + { + "name": "mscorlib", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\mscorlib.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.FileSystem", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.dll", + "compatibility": "valid" + }, + { + "name": "System.Text.Json", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Json.dll", + "compatibility": "valid" + }, + { + "name": "System.ComponentModel.DataAnnotations", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.DataAnnotations.dll", + "compatibility": "valid" + }, + { + "name": "System.Globalization", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Globalization.dll", + "compatibility": "valid" + }, + { + "name": "System.Drawing", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Drawing.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Cryptography.X509Certificates", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.X509Certificates.dll", + "compatibility": "valid" + }, + { + "name": "System.Windows", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Windows.dll", + "compatibility": "valid" + }, + { + "name": "System.Collections.Specialized", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.Specialized.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Extensions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Extensions.dll", + "compatibility": "valid" + }, + { + "name": "System.ComponentModel.EventBasedAsync", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.EventBasedAsync.dll", + "compatibility": "valid" + }, + { + "name": "System.ServiceProcess", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ServiceProcess.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Requests", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Requests.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.Linq", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.Linq.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.Emit.Lightweight", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Emit.Lightweight.dll", + "compatibility": "valid" + }, + { + "name": "System.Dynamic.Runtime", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Dynamic.Runtime.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Security", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Security.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.Compression.Brotli", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.Brotli.dll", + "compatibility": "valid" + }, + { + "name": "System.IO", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.DiagnosticSource", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.DiagnosticSource.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.XDocument", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XDocument.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.Extensions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Extensions.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Overlapped", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Overlapped.dll", + "compatibility": "valid" + }, + { + "name": "System.Drawing.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Drawing.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System.Net", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Cryptography.OpenSsl", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.OpenSsl.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.Pipes.AccessControl", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Pipes.AccessControl.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.HttpListener", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.HttpListener.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.Emit.ILGeneration", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Emit.ILGeneration.dll", + "compatibility": "valid" + }, + { + "name": "System.Text.Encoding.CodePages", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encoding.CodePages.dll", + "compatibility": "valid" + }, + { + "name": "System.Threading.Tasks.Dataflow", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.Dataflow.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.WebProxy", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebProxy.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.FileVersionInfo", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.FileVersionInfo.dll", + "compatibility": "valid" + }, + { + "name": "System.Text.RegularExpressions", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.RegularExpressions.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.Debug", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Debug.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Handles", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Handles.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.VisualBasic.Core", + "version": "11.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.VisualBasic.Core.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.XmlSerializer", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XmlSerializer.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.Metadata", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Metadata.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.dll", + "compatibility": "valid" + }, + { + "name": "System.Data.DataSetExtensions", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Data.DataSetExtensions.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.Compression", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.FileSystem.AccessControl", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.AccessControl.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.XmlDocument", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XmlDocument.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.Cryptography.Csp", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Csp.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.Emit", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Emit.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.InteropServices.RuntimeInformation", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.InteropServices.RuntimeInformation.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Mail", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Mail.dll", + "compatibility": "valid" + }, + { + "name": "System.Reflection.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.CompilerServices.Unsafe", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.CompilerServices.Unsafe.dll", + "compatibility": "valid" + }, + { + "name": "System.Security.SecureString", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.SecureString.dll", + "compatibility": "valid" + }, + { + "name": "System.Linq.Queryable", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.Queryable.dll", + "compatibility": "valid" + }, + { + "name": "System.Console", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Console.dll", + "compatibility": "valid" + }, + { + "name": "System.Diagnostics.TextWriterTraceListener", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.TextWriterTraceListener.dll", + "compatibility": "valid" + }, + { + "name": "System.Text.Encoding", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encoding.dll", + "compatibility": "valid" + }, + { + "name": "System.ServiceModel.Web", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ServiceModel.Web.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.WebHeaderCollection", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebHeaderCollection.dll", + "compatibility": "valid" + }, + { + "name": "System.IO.UnmanagedMemoryStream", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.UnmanagedMemoryStream.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Serialization.Xml", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Xml.dll", + "compatibility": "valid" + }, + { + "name": "System.Runtime.Numerics", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Numerics.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.ServicePoint", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.ServicePoint.dll", + "compatibility": "valid" + }, + { + "name": "System.Net.Primitives", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Primitives.dll", + "compatibility": "valid" + }, + { + "name": "System.Xml.XPath", + "version": "6.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XPath.dll", + "compatibility": "valid" + }, + { + "name": "nunit.framework.legacy", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\nunit\\4.0.0\\lib\\net6.0\\nunit.framework.legacy.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.VisualStudio.TestPlatform.Common", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.VisualStudio.TestPlatform.Common.dll", + "compatibility": "valid" + }, + { + "name": "Newtonsoft.Json", + "version": "13.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\newtonsoft.json\\13.0.1\\lib\\netstandard2.0\\Newtonsoft.Json.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.TestPlatform.Utilities", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.Utilities.dll", + "compatibility": "valid" + }, + { + "name": "testhost", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\testhost.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.VisualStudio.TestPlatform.ObjectModel", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "compatibility": "valid" + }, + { + "name": "nunit.framework", + "version": "4.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\nunit\\4.0.0\\lib\\net6.0\\nunit.framework.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.TestPlatform.CrossPlatEngine", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.CrossPlatEngine.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.TestPlatform.PlatformAbstractions", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.PlatformAbstractions.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.TestPlatform.CoreUtilities", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.CoreUtilities.dll", + "compatibility": "valid" + }, + { + "name": "NuGet.Frameworks", + "version": "6.5.0.154", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\nuget.frameworks\\6.5.0\\lib\\netstandard2.0\\NuGet.Frameworks.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.TestPlatform.CommunicationUtilities", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.CommunicationUtilities.dll", + "compatibility": "valid" + }, + { + "name": "Microsoft.VisualStudio.CodeCoverage.Shim", + "version": "15.0.0.0", + "isTransitive": true, + "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.codecoverage\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "compatibility": "valid" + } + ], + "projectReferences": [], + "frameworkReferences": [] + } + } + ] +} \ No newline at end of file diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/plan.md b/.github/upgrades/scenarios/dotnet-version-upgrade/plan.md new file mode 100644 index 0000000..fae50a3 --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/plan.md @@ -0,0 +1,38 @@ +# .NET Version Upgrade Plan + +## Overview + +**Target**: Upgrade DataDrivenTests project from .NET 6 to .NET 10 +**Scope**: Single project (~37 LOC), SDK-style, no dependencies, no compatibility issues + +### Selected Strategy +**All-At-Once** — All projects upgraded simultaneously in a single operation. +**Rationale**: Single project with no dependencies, already on modern .NET (net6.0), straightforward TFM update. + +## Tasks + +### 01-prerequisites: Verify upgrade prerequisites + +Validate that the development environment is ready for .NET 10. Check that .NET 10 SDK is installed and that any global.json files in the repository are compatible with .NET 10. This ensures the upgrade can proceed smoothly without toolchain issues. + +**Done when**: +- .NET 10 SDK installation confirmed +- global.json compatibility verified (or no global.json present) +- No toolchain blockers identified + +--- + +### 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 + +Update the DataDrivenTests project to target net10.0. This involves updating the TargetFramework in the project file and verifying that all NuGet packages (if any are added in the future) remain compatible. Since the assessment shows no packages currently, this is primarily a TFM update with verification. + +Assessment context: +- Current: net6.0, SDK-style +- No NuGet packages to update +- No API compatibility issues detected +- 2 code files, 37 lines of code + +**Done when**: +- Project file updated to target net10.0 +- Solution builds successfully with zero errors and zero warnings +- All existing tests pass diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md new file mode 100644 index 0000000..ebe360f --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md @@ -0,0 +1,35 @@ +# .NET Version Upgrade + +## Preferences +- **Flow Mode**: Automatic +- **Target Framework**: net10.0 (.NET 10 - LTS) +- **Project Path**: C:\repos\nunit\nunit-csharp-samples\DataDrivenTests\DataDrivenTests.csproj + +## Upgrade Options +**Source**: .github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md + +### Strategy +- Upgrade Strategy: All-at-Once + +## Source Control +- **Source Branch**: update +- **Working Branch**: upgrade-dotnet-10 +- **Commit Strategy**: Single Commit at End +- **Branch Sync**: Auto (Merge) + +## Strategy +**Selected**: All-at-Once +**Rationale**: Single project with no dependencies, already on modern .NET (net6.0), straightforward TFM update with no compatibility issues. + +### Execution Constraints +- Single atomic upgrade — all projects (in this case, one project) updated together +- Validate full solution build after upgrade with zero errors and zero warnings +- No tier ordering or phasing — complete upgrade in one pass +- Build and fix all compilation errors in a single bounded pass (not a retry loop) + +## User Preferences + +## Key Decisions Log + +## Reminders & Deferred Items +- Convert to Central Package Management (CPM) after .NET upgrade completes (2025-01-20) diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json new file mode 100644 index 0000000..a94694e --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json @@ -0,0 +1,14 @@ +{ + "scenarioId": "dotnet-version-upgrade", + "operationId": "0db2b3e4-9a07-46c2-baa6-a69962a335d3", + "description": "Upgrade .NET projects to newer .NET versions, including guidance on current release status, support lifecycle (LTS/STS), and recommended upgrade targets.", + "startTime": "2026-06-27T18:44:22.1564183Z", + "lastUpdateTime": "2026-06-27T18:47:57.7474484Z", + "properties": { + "UpgradeTargetFramework": "net10.0", + "taskStates": { + "01-prerequisites": "InProgress" + } + }, + "folderPath": "" +} \ No newline at end of file diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md new file mode 100644 index 0000000..01f1e5d --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md @@ -0,0 +1,12 @@ +# .NET Version Upgrade Progress + +## Overview + +Upgrading DataDrivenTests project from .NET 6 to .NET 10 using the All-at-Once strategy. Single project with no dependencies, straightforward TFM update. +**Progress**: 0/2 tasks complete 0% +**Progress**: 0/2 tasks complete 0% + +## Tasks +- 🔄 01-prerequisites: Verify upgrade prerequisites ([Content](tasks/01-prerequisites/task.md)) +- 🔲 01-prerequisites: Verify upgrade prerequisites +- 🔲 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md new file mode 100644 index 0000000..ca4e32e --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md @@ -0,0 +1,8 @@ +# 01-prerequisites: Verify upgrade prerequisites + +Validate that the development environment is ready for .NET 10. Check that .NET 10 SDK is installed and that any global.json files in the repository are compatible with .NET 10. This ensures the upgrade can proceed smoothly without toolchain issues. + +**Done when**: +- .NET 10 SDK installation confirmed +- global.json compatibility verified (or no global.json present) +- No toolchain blockers identified diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md new file mode 100644 index 0000000..d0c2a9e --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md @@ -0,0 +1,14 @@ +# 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 + +Update the DataDrivenTests project to target net10.0. This involves updating the TargetFramework in the project file and verifying that all NuGet packages (if any are added in the future) remain compatible. Since the assessment shows no packages currently, this is primarily a TFM update with verification. + +Assessment context: +- Current: net6.0, SDK-style +- No NuGet packages to update +- No API compatibility issues detected +- 2 code files, 37 lines of code + +**Done when**: +- Project file updated to target net10.0 +- Solution builds successfully with zero errors and zero warnings +- All existing tests pass diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md b/.github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md new file mode 100644 index 0000000..16fa45f --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md @@ -0,0 +1,12 @@ +# Upgrade Options — nunit-csharp-samples + +Assessment: 1 project, net6.0 → net10.0, SDK-style, 0 packages, no compatibility issues + +## Strategy + +### Upgrade Strategy +Single project with no dependencies — straightforward TFM update. + +| Value | Description | +|-------|-------------| +| **All-at-Once** (selected) | Upgrade all projects simultaneously in a single atomic pass | From 72b66140d818d3ad902f765d7d47b6b7803808ed Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Sat, 27 Jun 2026 21:35:43 +0200 Subject: [PATCH 3/8] Upgraded to 5.0.0-alpha.100.20 and .net 10. Also CPM. --- .../dotnet-version-upgrade/scenario.json | 5 +- .../scenarios/dotnet-version-upgrade/tasks.md | 8 +- .../01-prerequisites/progress-details.md | 30 ++ .../02-upgrade-project/progress-details.md | 59 +++ .gitignore | 428 ++++++++++++++++++ DataDrivenTests/DataDrivenTests.csproj | 20 +- Directory.Packages.props | 18 + .../ExpectedExceptionExample.csproj | 20 +- Samples.slnx | 1 + .../TimeoutRetryAttributeExample.csproj | 2 +- money/Money.csproj | 20 +- nuget.config | 6 +- syntax/AssertSyntax.csproj | 20 +- syntax/AssertSyntaxTests.cs | 112 +++-- 14 files changed, 667 insertions(+), 82 deletions(-) create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md create mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md create mode 100644 Directory.Packages.props diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json index a94694e..c3357d3 100644 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json @@ -3,11 +3,12 @@ "operationId": "0db2b3e4-9a07-46c2-baa6-a69962a335d3", "description": "Upgrade .NET projects to newer .NET versions, including guidance on current release status, support lifecycle (LTS/STS), and recommended upgrade targets.", "startTime": "2026-06-27T18:44:22.1564183Z", - "lastUpdateTime": "2026-06-27T18:47:57.7474484Z", + "lastUpdateTime": "2026-06-27T18:48:36.1919626Z", "properties": { "UpgradeTargetFramework": "net10.0", "taskStates": { - "01-prerequisites": "InProgress" + "01-prerequisites": "Completed", + "02-upgrade-project": "InProgress" } }, "folderPath": "" diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md index 01f1e5d..fd175a6 100644 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md @@ -1,12 +1,12 @@ # .NET Version Upgrade Progress ## Overview - -Upgrading DataDrivenTests project from .NET 6 to .NET 10 using the All-at-Once strategy. Single project with no dependencies, straightforward TFM update. +**Progress**: 1/2 tasks complete 50% +**Progress**: 1/2 tasks complete 50% **Progress**: 0/2 tasks complete 0% **Progress**: 0/2 tasks complete 0% -## Tasks +- ✅ 01-prerequisites: Verify upgrade prerequisites ([Content](tasks/01-prerequisites/task.md), [Progress](tasks/01-prerequisites/progress-details.md)) - 🔄 01-prerequisites: Verify upgrade prerequisites ([Content](tasks/01-prerequisites/task.md)) -- 🔲 01-prerequisites: Verify upgrade prerequisites +- 🔄 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 ([Content](tasks/02-upgrade-project/task.md)) - 🔲 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md new file mode 100644 index 0000000..cb1d08b --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md @@ -0,0 +1,30 @@ +# Task 01-prerequisites: Progress Details + +## Summary +Verified that the development environment is ready for .NET 10 upgrade. + +## Changes Made +None — verification only. + +## Validation Results + +### .NET 10 SDK Installation +✅ **Confirmed** — Compatible .NET 10 SDK found on the system. + +### global.json Compatibility +✅ **Verified** — No global.json file found in the repository. No compatibility constraints to check. + +### Toolchain Blockers +✅ **None identified** — Environment is ready for upgrade to .NET 10. + +## Build Results +N/A — No code changes made, no build required. + +## Test Results +N/A — No code changes made, no tests required. + +## Issues Resolved +None — all prerequisites met on first check. + +## Files Modified +None — verification task only. diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md new file mode 100644 index 0000000..05734ac --- /dev/null +++ b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md @@ -0,0 +1,59 @@ +# Task 02-upgrade-project: Progress Details + +## Summary +Successfully upgraded DataDrivenTests project from .NET 6 to .NET 10. + +## Changes Made + +### Project File Modified +**File**: `DataDrivenTests/DataDrivenTests.csproj` + +1. **Target Framework Updated** + - Changed: `net6.0` + - To: `net10.0` + +2. **NUnit Package Updated** + - Changed: `NUnit` version from `4.0.0-dev-07984` (development version) + - To: `NUnit` version `4.0.0` (stable release) + - Reason: Resolved NU1603 warning where the dev version was not found on NuGet and was auto-resolved to stable 4.0.0 + +## Validation Results + +### Build Results +✅ **SUCCESS** — Project builds with zero errors and zero warnings + +``` +Build succeeded in 1.7s +- 0 errors +- 0 warnings +``` + +Note: NETSDK1057 is an informational message (info level) about using a preview .NET version, not a warning. + +### Test Results +✅ **SUCCESS** — All tests pass + +``` +Test summary: total: 4, failed: 0, succeeded: 4, skipped: 0, duration: 2.1s +``` + +Tests executed: +- TestArguments: X is 10 ✅ +- TestArguments: X is 42 ✅ +- TestType: System.Int32 ✅ +- TestType: System.String ✅ + +### Done When Criteria Verification +✅ **Project file updated to target net10.0** — Confirmed in DataDrivenTests.csproj +✅ **Solution builds successfully with zero errors and zero warnings** — Build succeeded with 0 errors, 0 warnings +✅ **All existing tests pass** — 4/4 tests passed + +## Issues Resolved + +### Issue: NU1603 Warning +**Problem**: NuGet warning `NU1603: DataDrivenTests depends on NUnit (>= 4.0.0-dev-07984) but NUnit 4.0.0-dev-07984 was not found` + +**Resolution**: Updated package reference from development version `4.0.0-dev-07984` to stable release `4.0.0`. This eliminates the warning and uses a more stable package version appropriate for .NET 10. + +## Files Modified +1. `DataDrivenTests/DataDrivenTests.csproj` — Updated TargetFramework to net10.0 and NUnit package version to 4.0.0 diff --git a/.gitignore b/.gitignore index 8588efb..0fbfbf4 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,431 @@ tools !tools/packages.config .vs .dotnet +# Created by https://www.toptal.com/developers/gitignore/api/visualstudio +# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudio + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +### VisualStudio Patch ### +# Additional files built by Visual Studio + +# End of https://www.toptal.com/developers/gitignore/api/visualstudio +# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode +# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode diff --git a/DataDrivenTests/DataDrivenTests.csproj b/DataDrivenTests/DataDrivenTests.csproj index 29831dc..6e74f49 100644 --- a/DataDrivenTests/DataDrivenTests.csproj +++ b/DataDrivenTests/DataDrivenTests.csproj @@ -1,13 +1,19 @@ - + - net6.0 + net10.0 Copyright ©NUnit 2018 - - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + \ No newline at end of file diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000..b14083c --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,18 @@ + + + true + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + \ No newline at end of file diff --git a/ExpectedExceptionExample/ExpectedExceptionExample.csproj b/ExpectedExceptionExample/ExpectedExceptionExample.csproj index ab83e14..6e74f49 100644 --- a/ExpectedExceptionExample/ExpectedExceptionExample.csproj +++ b/ExpectedExceptionExample/ExpectedExceptionExample.csproj @@ -1,13 +1,19 @@ - + - net6.0 + net10.0 Copyright ©NUnit 2018 - - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + \ No newline at end of file diff --git a/Samples.slnx b/Samples.slnx index 3ec6028..6e66b61 100644 --- a/Samples.slnx +++ b/Samples.slnx @@ -3,6 +3,7 @@ + diff --git a/TimeoutRetryAttributeExample/TimeoutRetryAttributeExample.csproj b/TimeoutRetryAttributeExample/TimeoutRetryAttributeExample.csproj index 759718f..ecfdae7 100644 --- a/TimeoutRetryAttributeExample/TimeoutRetryAttributeExample.csproj +++ b/TimeoutRetryAttributeExample/TimeoutRetryAttributeExample.csproj @@ -1,4 +1,4 @@ - + diff --git a/money/Money.csproj b/money/Money.csproj index ab83e14..6e74f49 100644 --- a/money/Money.csproj +++ b/money/Money.csproj @@ -1,13 +1,19 @@ - + - net6.0 + net10.0 Copyright ©NUnit 2018 - - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + \ No newline at end of file diff --git a/nuget.config b/nuget.config index 2189696..5fdba97 100644 --- a/nuget.config +++ b/nuget.config @@ -1,8 +1,8 @@ - + - + - + \ No newline at end of file diff --git a/syntax/AssertSyntax.csproj b/syntax/AssertSyntax.csproj index ab83e14..6e74f49 100644 --- a/syntax/AssertSyntax.csproj +++ b/syntax/AssertSyntax.csproj @@ -1,13 +1,19 @@ - + - net6.0 + net10.0 Copyright ©NUnit 2018 - - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + \ No newline at end of file diff --git a/syntax/AssertSyntaxTests.cs b/syntax/AssertSyntaxTests.cs index 11160ca..ac68833 100755 --- a/syntax/AssertSyntaxTests.cs +++ b/syntax/AssertSyntaxTests.cs @@ -1,9 +1,20 @@ using System.Collections; using NUnit.Framework; -using NUnit.Framework.Legacy; namespace AssertSyntax; +// This file is part of the NUnit framework and is used to test the syntax of assertions in NUnit. +// It contains a series of tests that demonstrate the various ways to use assertions, including both classic and constraint-based syntax. +// The tests cover a wide range of scenarios, including simple constraints, type constraints, string constraints, equality tests, comparison tests, collection tests, property tests, and operator tests. +// Additionally, it includes tests for assumptions and warnings. +// Warnings are suppressed +#pragma warning disable NUnit2007 // The actual value should not be a constant +#pragma warning disable NUnit2049 // Consider using Assert.That(...) instead of CollectionAssert(...) +#pragma warning disable NUnit2009 // The same value has been provided as both the actual and the expected argument +#pragma warning disable CA1825 // Avoid zero-length array allocations +#pragma warning disable NUnit2010 // Use EqualConstraint for better assertion messages in case of failure + + /// /// This test fixture attempts to exercise all the syntactic /// variations of Assert without getting into failures, errors @@ -24,15 +35,17 @@ public class AssertSyntaxTests [Test] public void IsNull() { - object nada = null; + object nada = GetObjectAsNull(); // Constraint Syntax Assert.That(nada, Is.Null); // Classic syntax - ClassicAssert.IsNull(nada); + Assert.IsNull(nada); } + private static object GetObjectAsNull() => null; + [Test] public void IsNotNull() { @@ -42,28 +55,34 @@ public void IsNotNull() Assert.That(theAnswer, Is.Not.Null); // Classic syntax - ClassicAssert.IsNotNull(42); + Assert.IsNotNull(42); } [Test] public void IsTrue() { // Constraint Syntax - Assert.That(2 + 2 == 4, Is.True); - Assert.That(2 + 2 == 4); + int result = GetResultAs4(); + Assert.That(result == 4, Is.True); + Assert.That(result == 4); // Classic syntax - ClassicAssert.IsTrue(2 + 2 == 4); + Assert.IsTrue(GetResultAs4() == 4); } + /// + /// Returns 4 + /// + private static int GetResultAs4() => 4; + [Test] public void IsFalse() { // Constraint Syntax - Assert.That(2 + 2 == 5, Is.False); + Assert.That(GetResultAs4() == 5, Is.False); // Classic syntax - ClassicAssert.IsFalse(2 + 2 == 5); + Assert.IsFalse(GetResultAs4() == 5); } [Test] @@ -77,8 +96,8 @@ public void IsNaN() Assert.That(f, Is.NaN); // Classic syntax - ClassicAssert.IsNaN(d); - ClassicAssert.IsNaN(f); + Assert.IsNaN(d); + Assert.IsNaN(f); } [Test] @@ -89,8 +108,8 @@ public void EmptyStringTests() Assert.That("Hello!", Is.Not.Empty); // Classic syntax - ClassicAssert.IsEmpty(""); - ClassicAssert.IsNotEmpty("Hello!"); + Assert.IsEmpty(""); + Assert.IsNotEmpty("Hello!"); } [Test] @@ -101,8 +120,8 @@ public void EmptyCollectionTests() Assert.That(new[] { 1, 2, 3 }, Is.Not.Empty); // Classic syntax - ClassicAssert.IsEmpty(new bool[0]); - ClassicAssert.IsNotEmpty(new[] { 1, 2, 3 }); + Assert.IsEmpty(new bool[0]); + Assert.IsNotEmpty(new[] { 1, 2, 3 }); } #endregion @@ -116,10 +135,10 @@ public void ExactTypeTests() Assert.That("Hello", Is.Not.TypeOf(typeof(int))); // Classic syntax workarounds - ClassicAssert.AreEqual(typeof(string), "Hello".GetType()); - ClassicAssert.AreEqual("System.String", "Hello".GetType().FullName); - ClassicAssert.AreNotEqual(typeof(int), "Hello".GetType()); - ClassicAssert.AreNotEqual("System.Int32", "Hello".GetType().FullName); + Assert.AreEqual(typeof(string), "Hello".GetType()); + Assert.AreEqual("System.String", "Hello".GetType().FullName); + Assert.AreNotEqual(typeof(int), "Hello".GetType()); + Assert.AreNotEqual("System.Int32", "Hello".GetType().FullName); } [Test] @@ -130,8 +149,8 @@ public void InstanceOfTests() Assert.That(5, Is.Not.InstanceOf(typeof(string))); // Classic syntax - ClassicAssert.IsInstanceOf(typeof(string), "Hello"); - ClassicAssert.IsNotInstanceOf(typeof(string), 5); + Assert.IsInstanceOf(typeof(string), "Hello"); + Assert.IsNotInstanceOf(typeof(string), 5); } [Test] @@ -142,8 +161,8 @@ public void AssignableFromTypeTests() Assert.That(5, Is.Not.AssignableFrom(typeof(string))); // Classic syntax - ClassicAssert.IsAssignableFrom(typeof(string), "Hello"); - ClassicAssert.IsNotAssignableFrom(typeof(string), 5); + Assert.IsAssignableFrom(typeof(string), "Hello"); + Assert.IsNotAssignableFrom(typeof(string), 5); } #endregion @@ -163,7 +182,9 @@ public void SubstringTests() Assert.That(array, Is.All.Contains("b")); // Classic Syntax +#pragma warning disable NUnit2048 StringAssert.Contains("World", phrase); +#pragma warning restore NUnit2048 } [Test] @@ -181,7 +202,9 @@ public void StartsWithTests() Assert.That(greetings, Is.All.StartsWith("h").IgnoreCase); // Classic syntax +#pragma warning disable NUnit2048 StringAssert.StartsWith("Hello", phrase); +#pragma warning restore NUnit2048 } [Test] @@ -198,7 +221,9 @@ public void EndsWithTests() Assert.That(greetings, Is.All.EndsWith("!")); // Classic Syntax +#pragma warning disable NUnit2048 StringAssert.EndsWith("!", phrase); +#pragma warning restore NUnit2048 } [Test] @@ -216,7 +241,9 @@ public void EqualIgnoringCaseTests() Is.All.EqualTo("hello").IgnoreCase); // Classic syntax +#pragma warning disable NUnit2048 StringAssert.AreEqualIgnoringCase("hello world!", phrase); +#pragma warning restore NUnit2048 } [Test] @@ -234,8 +261,10 @@ public void RegularExpressionTests() Assert.That(quotes, Is.All.Matches("never").IgnoreCase); // Classic syntax +#pragma warning disable NUnit2048 StringAssert.IsMatch("all good men", phrase); StringAssert.IsMatch("Now.*come", phrase); +#pragma warning restore NUnit2048 } #endregion @@ -255,10 +284,10 @@ public void EqualityTests() Assert.That(i3, Is.Not.EqualTo(iunequal)); // Classic Syntax - ClassicAssert.AreEqual(4, 2 + 2); - ClassicAssert.AreEqual(i3, d3); - ClassicAssert.AreNotEqual(5, 2 + 2); - ClassicAssert.AreNotEqual(i3, iunequal); + Assert.AreEqual(4, 2 + 2); + Assert.AreEqual(i3, d3); + Assert.AreNotEqual(5, 2 + 2); + Assert.AreNotEqual(i3, iunequal); } [Test] @@ -275,8 +304,8 @@ public void EqualityTestsWithTolerance() Assert.That(5999999999ul, Is.EqualTo(6000000000ul).Within(5ul)); // CLassic syntax - ClassicAssert.AreEqual(5.0d, 4.99d, 0.05d); - ClassicAssert.AreEqual(5.0f, 4.99f, 0.05f); + Assert.AreEqual(5.0d, 4.99d, 0.05d); + Assert.AreEqual(5.0f, 4.99f, 0.05f); } [Test] @@ -330,9 +359,9 @@ public void ComparisonTests() Assert.That(7, Is.AtLeast(7)); // Classic Syntax - ClassicAssert.Greater(7, 3); - ClassicAssert.GreaterOrEqual(7, 3); - ClassicAssert.GreaterOrEqual(7, 7); + Assert.Greater(7, 3); + Assert.GreaterOrEqual(7, 3); + Assert.GreaterOrEqual(7, 7); // Constraint Syntax Assert.That(3, Is.LessThan(7)); @@ -343,9 +372,9 @@ public void ComparisonTests() // Classic syntax - ClassicAssert.Less(3, 7); - ClassicAssert.LessOrEqual(3, 7); - ClassicAssert.LessOrEqual(3, 3); + Assert.Less(3, 7); + Assert.LessOrEqual(3, 7); + Assert.LessOrEqual(3, 3); } #endregion @@ -443,15 +472,14 @@ public void CollectionContainsTests() Assert.That(sarray, Has.None.Property("Length").GreaterThan(3)); // Classic syntax - ClassicAssert.Contains(3, iarray); - ClassicAssert.Contains("b", sarray); + Assert.Contains(3, iarray); + Assert.Contains("b", sarray); CollectionAssert.Contains(iarray, 3); CollectionAssert.Contains(sarray, "b"); CollectionAssert.DoesNotContain(sarray, "x"); // Showing that Contains uses NUnit equality CollectionAssert.Contains(iarray, 1.0d); - } [Test] @@ -490,7 +518,6 @@ public void SubsetTests() CollectionAssert.IsSubsetOf(new[] { 1, 2, 3, 4, 5 }, ints1to5); CollectionAssert.IsNotSubsetOf(new[] { 2, 4, 6 }, ints1to5); CollectionAssert.IsNotSubsetOf(new[] { 1, 2, 2, 2, 5 }, ints1to5); - } #endregion @@ -498,8 +525,8 @@ public void SubsetTests() [Test] public void PropertyTests() { - string[] array = { "abc", "bca", "xyz", "qrs" }; - string[] array2 = { "a", "ab", "abc" }; + string[] array = ["abc", "bca", "xyz", "qrs"]; + string[] array2 = ["a", "ab", "abc"]; var list = new ArrayList(array); // Not available using the classic syntax @@ -557,21 +584,18 @@ public void NotTests() [Test] public void NotOperator() { - // The ! operator is only available in the new syntax Assert.That(42, !Is.Null); } [Test] public void AndOperator() { - // The & operator is only available in the new syntax Assert.That(7, Is.GreaterThan(5) & Is.LessThan(10)); } [Test] public void OrOperator() { - // The | operator is only available in the new syntax Assert.That(3, Is.LessThan(5) | Is.GreaterThan(10)); } From f48621a8062eb4bc02ddb176b4d2331ec8c27614 Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Sat, 27 Jun 2026 21:43:42 +0200 Subject: [PATCH 4/8] UPdated assertsyntax --- syntax/AssertSyntaxTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/syntax/AssertSyntaxTests.cs b/syntax/AssertSyntaxTests.cs index ac68833..27f2e3f 100755 --- a/syntax/AssertSyntaxTests.cs +++ b/syntax/AssertSyntaxTests.cs @@ -467,6 +467,7 @@ public void CollectionContainsTests() Assert.That(sarray, Has.Some.EqualTo("b")); Assert.That(sarray, Has.None.EqualTo("x")); Assert.That(iarray, Has.None.SameAs(1.0d)); + Assert.That(iarray, Has.None.SameAs(1)); Assert.That(iarray, Has.All.LessThan(10)); Assert.That(sarray, Has.All.Length.EqualTo(1)); Assert.That(sarray, Has.None.Property("Length").GreaterThan(3)); From 2ee3f150dc8bfb34891c7dcad1e5f329dbe2380a Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Sun, 28 Jun 2026 09:40:34 +0200 Subject: [PATCH 5/8] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- Directory.Packages.props | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index b14083c..4dc129e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,10 +5,7 @@ - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - + runtime; build; native; contentfiles; analyzers; buildtransitive From 35277d988ffc7d1416aea439218b5f9bd0766c89 Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Sun, 28 Jun 2026 09:40:46 +0200 Subject: [PATCH 6/8] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- Directory.Packages.props | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 4dc129e..58da347 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,9 +7,6 @@ - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - + \ No newline at end of file From b46fedaaf7e8838882295c5ba33ca046d276968c Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Mon, 29 Jun 2026 20:07:56 +0200 Subject: [PATCH 7/8] Updated and fixed comments --- money/MoneyTest.cs | 2 +- syntax/AssertSyntaxTests.cs | 17 ++--------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/money/MoneyTest.cs b/money/MoneyTest.cs index 4aee9c8..5a2d594 100755 --- a/money/MoneyTest.cs +++ b/money/MoneyTest.cs @@ -46,7 +46,7 @@ public void BagMultiply() var expected = new MoneyBag(bag); Assert.That(fMB1.Multiply(2), Is.EqualTo(expected)); Assert.That(fMB1.Multiply(1), Is.EqualTo(fMB1)); - ClassicAssert.IsTrue(fMB1.Multiply(0).IsZero); + Assert.IsTrue(fMB1.Multiply(0).IsZero); } /// diff --git a/syntax/AssertSyntaxTests.cs b/syntax/AssertSyntaxTests.cs index 27f2e3f..7ea0277 100755 --- a/syntax/AssertSyntaxTests.cs +++ b/syntax/AssertSyntaxTests.cs @@ -13,6 +13,7 @@ namespace AssertSyntax; #pragma warning disable NUnit2009 // The same value has been provided as both the actual and the expected argument #pragma warning disable CA1825 // Avoid zero-length array allocations #pragma warning disable NUnit2010 // Use EqualConstraint for better assertion messages in case of failure +#pragma warning disable NUnit2048 // Consider using Assert.That(...) instead of StringAssert.Contains(...) /// @@ -175,16 +176,13 @@ public void SubstringTests() // Constraint Syntax Assert.That(phrase, Does.Contain("World")); - // Only available using new syntax Assert.That(phrase, Does.Not.Contain("goodbye")); Assert.That(phrase, Does.Contain("WORLD").IgnoreCase); Assert.That(phrase, Does.Not.Contain("BYE").IgnoreCase); Assert.That(array, Is.All.Contains("b")); // Classic Syntax -#pragma warning disable NUnit2048 StringAssert.Contains("World", phrase); -#pragma warning restore NUnit2048 } [Test] @@ -195,16 +193,13 @@ public void StartsWithTests() // Constraint Syntax Assert.That(phrase, Does.StartWith("Hello")); - // Only available using new syntax Assert.That(phrase, Does.Not.StartWith("Hi!")); Assert.That(phrase, Does.StartWith("HeLLo").IgnoreCase); Assert.That(phrase, Does.Not.StartWith("HI").IgnoreCase); Assert.That(greetings, Is.All.StartsWith("h").IgnoreCase); // Classic syntax -#pragma warning disable NUnit2048 StringAssert.StartsWith("Hello", phrase); -#pragma warning restore NUnit2048 } [Test] @@ -221,9 +216,7 @@ public void EndsWithTests() Assert.That(greetings, Is.All.EndsWith("!")); // Classic Syntax -#pragma warning disable NUnit2048 StringAssert.EndsWith("!", phrase); -#pragma warning restore NUnit2048 } [Test] @@ -241,9 +234,7 @@ public void EqualIgnoringCaseTests() Is.All.EqualTo("hello").IgnoreCase); // Classic syntax -#pragma warning disable NUnit2048 StringAssert.AreEqualIgnoringCase("hello world!", phrase); -#pragma warning restore NUnit2048 } [Test] @@ -261,10 +252,8 @@ public void RegularExpressionTests() Assert.That(quotes, Is.All.Matches("never").IgnoreCase); // Classic syntax -#pragma warning disable NUnit2048 StringAssert.IsMatch("all good men", phrase); StringAssert.IsMatch("Now.*come", phrase); -#pragma warning restore NUnit2048 } #endregion @@ -303,7 +292,7 @@ public void EqualityTestsWithTolerance() Assert.That(4999999999L, Is.EqualTo(5000000000L).Within(5L)); Assert.That(5999999999ul, Is.EqualTo(6000000000ul).Within(5ul)); - // CLassic syntax + // Classic syntax Assert.AreEqual(5.0d, 4.99d, 0.05d); Assert.AreEqual(5.0f, 4.99f, 0.05f); } @@ -466,8 +455,6 @@ public void CollectionContainsTests() Assert.That(iarray, Has.Member(3)); Assert.That(sarray, Has.Some.EqualTo("b")); Assert.That(sarray, Has.None.EqualTo("x")); - Assert.That(iarray, Has.None.SameAs(1.0d)); - Assert.That(iarray, Has.None.SameAs(1)); Assert.That(iarray, Has.All.LessThan(10)); Assert.That(sarray, Has.All.Length.EqualTo(1)); Assert.That(sarray, Has.None.Property("Length").GreaterThan(3)); From 910f3f16c50cc25b04d538028b0abbe0f54ea156 Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Mon, 29 Jun 2026 22:17:51 +0200 Subject: [PATCH 8/8] CLeanup --- .../dotnet-version-upgrade/assessment.csv | 3 - .../dotnet-version-upgrade/assessment.json | 137 -- .../dotnet-version-upgrade/assessment.md | 134 -- .../dependencies-health.json | 1377 ----------------- .../scenarios/dotnet-version-upgrade/plan.md | 38 - .../scenario-instructions.md | 35 - .../dotnet-version-upgrade/scenario.json | 15 - .../scenarios/dotnet-version-upgrade/tasks.md | 12 - .../01-prerequisites/progress-details.md | 30 - .../tasks/01-prerequisites/task.md | 8 - .../02-upgrade-project/progress-details.md | 59 - .../tasks/02-upgrade-project/task.md | 14 - .../dotnet-version-upgrade/upgrade-options.md | 12 - .github/workflows/CI.yml | 9 +- Samples.slnx | 1 + 15 files changed, 4 insertions(+), 1880 deletions(-) delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/assessment.json delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/assessment.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/plan.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/scenario.json delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md delete mode 100644 .github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv deleted file mode 100644 index f5cd9ab..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.csv +++ /dev/null @@ -1,3 +0,0 @@ -Issue ID,Description,State,Severity,Story Points,Project Path,Location Kind,Path,Line,Column,Incident ID,Help Link,Assembly Name,Assembly Version,Assembly Public Key,Snippet -NuGet.0006,NuGet package source mappings are recommended,Active,Information,1,DataDrivenTests.csproj,File,C:\repos\nunit\nunit-csharp-samples\NuGet.config,,,,,,,,Found 1 files matching the rule: NuGet.config -Project.0002,Project's target framework(s) needs to be changed,Active,Mandatory,1,DataDrivenTests.csproj,File,DataDrivenTests.csproj,,,,,,,,Current target framework: net6.0 Recommended target framework: net10.0 diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.json b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.json deleted file mode 100644 index 0c40644..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "settings": { - "components": { - "code": true, - "binaries": false - }, - "targetId": "net10.0", - "targetDisplayName": ".NETCoreApp,Version=v10.0" - }, - "analysisStartTime": "2026-06-27T18:44:40.7414281Z", - "analysisEndTime": "2026-06-27T18:44:41.2520051Z", - "privacyModeHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2270980", - "stats": { - "summary": { - "projects": 1, - "issues": 2, - "incidents": 2, - "effort": 2 - }, - "charts": { - "severity": { - "Mandatory": 1, - "Optional": 0, - "Potential": 0, - "Information": 1 - }, - "category": { - "NuGet": 1, - "Project": 1 - } - } - }, - "projects": [ - { - "path": "DataDrivenTests.csproj", - "startingProject": true, - "issues": 2, - "storyPoints": 2, - "properties": { - "appName": "DataDrivenTests", - "projectKind": "DotNetCoreApp", - "frameworks": [ - "net6.0" - ], - "languages": [ - "C#" - ], - "tools": [ - "MSBuild" - ], - "isSdkStyle": true, - "numberOfFiles": 4, - "numberOfCodeFiles": 2, - "linesTotal": 1817, - "linesOfCode": 37, - "totalApiScanned": 33, - "minLinesOfCodeToChange": 0, - "maxLinesOfCodeToChange": 0 - }, - "ruleInstances": [ - { - "incidentId": "b592fc9c-0ca3-4bc2-9001-182e93043a70", - "ruleId": "NuGet.0006", - "projectPath": "DataDrivenTests.csproj", - "state": "Active", - "location": { - "snippetModel": { - "unrestricted": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n", - "protected": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n" - }, - "kind": "File", - "path": "C:\\repos\\nunit\\nunit-csharp-samples\\NuGet.config", - "snippet": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n", - "protectedSnippet": "Found 1 files matching the rule:\r\n\r\nNuGet.config\r\n" - } - }, - { - "incidentId": "cb01fe95-a6c3-4fc7-a731-6bad2cf9f664", - "ruleId": "Project.0002", - "projectPath": "DataDrivenTests.csproj", - "state": "Active", - "location": { - "snippetModel": { - "unrestricted": "Current target framework: net6.0\nRecommended target framework: net10.0", - "protected": "Current target framework: net6.0\nRecommended target framework: net10.0" - }, - "kind": "File", - "path": "DataDrivenTests.csproj", - "snippet": "Current target framework: net6.0\nRecommended target framework: net10.0", - "protectedSnippet": "Current target framework: net6.0\nRecommended target framework: net10.0", - "properties": { - "CurrentTargetFramework": "net6.0", - "RecommendedTargetFramework": "net10.0" - } - } - } - ], - "features": [] - } - ], - "rules": { - "NuGet.0006": { - "id": "NuGet.0006", - "isFeature": false, - "description": "NuGet package source mappings are recommended.\n\nWhen NuGet.config contains multiple package sources, Package Source Mapping is a tool that can be used to improve your supply chain security, especially if you use a mix of public and private package sources.\n\nBy default, NuGet will search all configured package sources when it needs to download a package. When a package exists on multiple sources, it may not be deterministic which source the package will be downloaded from. With Package Source Mapping, you can filter, per package, which source(s) NuGet will search.", - "label": "NuGet package source mappings are recommended", - "severity": "Information", - "effort": 1, - "links": [ - { - "url": "https://go.microsoft.com/fwlink/?linkid=2288407", - "isCustom": false - } - ] - }, - "Project.0002": { - "id": "Project.0002", - "isFeature": false, - "description": "Project\u0027s target framework(s) needs to be changed to the new target framework that you selected for this upgrade.\n\nDuring upgrade target framework will be adjusted to corresponding platform when applicable. In some cases project would result in multiple target frameworks after the upgrade if it was using features that now have their own platforms in modern .NET frameworks (windows, iOS, Android etc).", - "label": "Project\u0027s target framework(s) needs to be changed", - "severity": "Mandatory", - "effort": 1, - "links": [ - { - "title": "Overview of porting from .NET Framework to .NET", - "url": "https://go.microsoft.com/fwlink/?linkid=2265227", - "isCustom": false - }, - { - "title": ".NET project SDKs", - "url": "https://go.microsoft.com/fwlink/?linkid=2265226", - "isCustom": false - } - ] - } - } -} \ No newline at end of file diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.md b/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.md deleted file mode 100644 index 67480c4..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/assessment.md +++ /dev/null @@ -1,134 +0,0 @@ -# Projects and dependencies analysis - -This document provides a comprehensive overview of the projects and their dependencies in the context of upgrading to .NETCoreApp,Version=v10.0. - -## Table of Contents - -- [Executive Summary](#executive-Summary) - - [Highlevel Metrics](#highlevel-metrics) - - [Projects Compatibility](#projects-compatibility) - - [Package Compatibility](#package-compatibility) - - [API Compatibility](#api-compatibility) - - [Binding Redirect Configuration](#binding-redirect-configuration) -- [Aggregate NuGet packages details](#aggregate-nuget-packages-details) -- [Top API Migration Challenges](#top-api-migration-challenges) - - [Technologies and Features](#technologies-and-features) - - [Most Frequent API Issues](#most-frequent-api-issues) -- [Projects Relationship Graph](#projects-relationship-graph) -- [Project Details](#project-details) - - - [DataDrivenTests.csproj](#datadriventestscsproj) - - -## Executive Summary - -### Highlevel Metrics - -| Metric | Count | Status | -| :--- | :---: | :--- | -| Total Projects | 1 | All require upgrade | -| Total NuGet Packages | 0 | All compatible | -| Total Code Files | 2 | | -| Total Code Files with Incidents | 2 | | -| Total Lines of Code | 37 | | -| Total Number of Issues | 2 | | -| Estimated LOC to modify | 0+ | at least 0.0% of codebase | - -### Projects Compatibility - -| Project | Target Framework | Difficulty | Package Issues | API Issues | Binding Issues | Est. LOC Impact | Description | -| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :--- | -| [DataDrivenTests.csproj](#datadriventestscsproj) | net6.0 | 🟢 Low | 1 | 0 | 0 | | DotNetCoreApp, Sdk Style = True | - -### Package Compatibility - -| Status | Count | Percentage | -| :--- | :---: | :---: | -| ✅ Compatible | 0 | 0.0% | -| ⚠️ Incompatible | 0 | 0.0% | -| 🔄 Upgrade Recommended | 0 | 0.0% | -| ***Total NuGet Packages*** | ***0*** | ***100%*** | - -### API Compatibility - -| Category | Count | Impact | -| :--- | :---: | :--- | -| 🔴 Binary Incompatible | 0 | High - Require code changes | -| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing | -| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime | -| ✅ Compatible | 33 | | -| ***Total APIs Analyzed*** | ***33*** | | - -## Aggregate NuGet packages details - -| Package | Current Version | Suggested Version | Projects | Description | -| :--- | :---: | :---: | :--- | :--- | - -## Top API Migration Challenges - -### Technologies and Features - -| Technology | Issues | Percentage | Migration Path | -| :--- | :---: | :---: | :--- | - -### Most Frequent API Issues - -| API | Count | Percentage | Category | -| :--- | :---: | :---: | :--- | - -## Projects Relationship Graph - -Legend: -📦 SDK-style project -⚙️ Classic project - -```mermaid -flowchart LR - P1["📦 DataDrivenTests.csproj
net6.0"] - click P1 "#datadriventestscsproj" - -``` - -## Project Details - - -### DataDrivenTests.csproj - -#### Project Info - -- **Current Target Framework:** net6.0 -- **Proposed Target Framework:** net10.0 -- **SDK-style**: True -- **Project Kind:** DotNetCoreApp -- **Dependencies**: 0 -- **Dependants**: 0 -- **Number of Files**: 4 -- **Number of Files with Incidents**: 2 -- **Lines of Code**: 37 -- **Estimated LOC to modify**: 0+ (at least 0.0% of the project) - -#### Dependency Graph - -Legend: -📦 SDK-style project -⚙️ Classic project - -```mermaid -flowchart TB - subgraph current["DataDrivenTests.csproj"] - MAIN["📦 DataDrivenTests.csproj
net6.0"] - click MAIN "#datadriventestscsproj" - end - -``` - -### API Compatibility - -| Category | Count | Impact | -| :--- | :---: | :--- | -| 🔴 Binary Incompatible | 0 | High - Require code changes | -| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing | -| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime | -| ✅ Compatible | 33 | | -| ***Total APIs Analyzed*** | ***33*** | | - diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json b/.github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json deleted file mode 100644 index 9c5b253..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/dependencies-health.json +++ /dev/null @@ -1,1377 +0,0 @@ -{ - "packageGovernance": { - "totalDistinctPackages": 5, - "totalVersionDriftInstances": 0, - "targetFramework": "net10.0", - "packages": [ - { - "name": "coverlet.collector", - "totalProjectCount": 1, - "distinctVersionCount": 1, - "recommendedVersion": "6.0.0", - "isCompatible": false, - "versions": [ - { - "version": "6.0.0", - "projects": [ - "DataDrivenTests" - ], - "isRecommended": true - } - ] - }, - { - "name": "Microsoft.NET.Test.Sdk", - "totalProjectCount": 1, - "distinctVersionCount": 1, - "recommendedVersion": "17.7.2", - "isCompatible": false, - "versions": [ - { - "version": "17.7.2", - "projects": [ - "DataDrivenTests" - ], - "isRecommended": true - } - ] - }, - { - "name": "NUnit", - "totalProjectCount": 1, - "distinctVersionCount": 1, - "recommendedVersion": "4.0.0-dev-07984", - "isCompatible": false, - "versions": [ - { - "version": "4.0.0-dev-07984", - "projects": [ - "DataDrivenTests" - ], - "isRecommended": true - } - ] - }, - { - "name": "NUnit.Analyzers", - "totalProjectCount": 1, - "distinctVersionCount": 1, - "recommendedVersion": "3.8.0", - "isCompatible": false, - "versions": [ - { - "version": "3.8.0", - "projects": [ - "DataDrivenTests" - ], - "isRecommended": true - } - ] - }, - { - "name": "NUnit3TestAdapter", - "totalProjectCount": 1, - "distinctVersionCount": 1, - "recommendedVersion": "4.5.0", - "isCompatible": false, - "versions": [ - { - "version": "4.5.0", - "projects": [ - "DataDrivenTests" - ], - "isRecommended": true - } - ] - } - ] - }, - "projects": [ - { - "name": "DataDrivenTests", - "path": "DataDrivenTests.csproj", - "isSdk": true, - "currentFrameworks": [ - "net6.0" - ], - "targetFramework": "net10.0", - "dependencies": { - "packages": [ - { - "name": "Microsoft.NET.Test.Sdk", - "version": "17.7.2", - "isTransitive": false, - "isGlobal": false, - "isImplicit": false, - "definedIn": [ - { - "path": "DataDrivenTests.csproj" - } - ], - "compatibility": "unknown" - }, - { - "name": "NUnit", - "version": "4.0.0-dev-07984", - "isTransitive": false, - "isGlobal": false, - "isImplicit": false, - "definedIn": [ - { - "path": "DataDrivenTests.csproj" - } - ], - "compatibility": "unknown" - }, - { - "name": "NUnit.Analyzers", - "version": "3.8.0", - "isTransitive": false, - "isGlobal": false, - "isImplicit": false, - "definedIn": [ - { - "path": "DataDrivenTests.csproj" - } - ], - "compatibility": "unknown" - }, - { - "name": "NUnit3TestAdapter", - "version": "4.5.0", - "isTransitive": false, - "isGlobal": false, - "isImplicit": false, - "definedIn": [ - { - "path": "DataDrivenTests.csproj" - } - ], - "compatibility": "unknown" - }, - { - "name": "coverlet.collector", - "version": "6.0.0", - "isTransitive": false, - "isGlobal": false, - "isImplicit": false, - "definedIn": [ - { - "path": "DataDrivenTests.csproj" - } - ], - "compatibility": "unknown" - } - ], - "assemblies": [ - { - "name": "System.Text.Encodings.Web", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encodings.Web.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.VisualBasic", - "version": "10.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.VisualBasic.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.WebClient", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebClient.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.Win32.Registry", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.Win32.Registry.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.FileSystem.Watcher", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.Watcher.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Channels", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Channels.dll", - "compatibility": "valid" - }, - { - "name": "System.Web", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Web.dll", - "compatibility": "valid" - }, - { - "name": "System.Buffers", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Buffers.dll", - "compatibility": "valid" - }, - { - "name": "System.ValueTuple", - "version": "4.0.3.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ValueTuple.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Cryptography.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.TraceSource", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.TraceSource.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Serialization.Formatters", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Formatters.dll", - "compatibility": "valid" - }, - { - "name": "WindowsBase", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\WindowsBase.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Cryptography.Encoding", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Encoding.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Cryptography.Algorithms", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Algorithms.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.Tracing", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Tracing.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Intrinsics", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Intrinsics.dll", - "compatibility": "valid" - }, - { - "name": "System.Core", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Core.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.StackTrace", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.StackTrace.dll", - "compatibility": "valid" - }, - { - "name": "System.Text.Encoding.Extensions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encoding.Extensions.dll", - "compatibility": "valid" - }, - { - "name": "System.Transactions.Local", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Transactions.Local.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.FileSystem.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Thread", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Thread.dll", - "compatibility": "valid" - }, - { - "name": "System.Globalization.Calendars", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Globalization.Calendars.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Principal", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Principal.dll", - "compatibility": "valid" - }, - { - "name": "System.Globalization.Extensions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Globalization.Extensions.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.WebSockets.Client", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebSockets.Client.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.Win32.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.Win32.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.Serialization", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.Serialization.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.NameResolution", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.NameResolution.dll", - "compatibility": "valid" - }, - { - "name": "System.Resources.Writer", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Resources.Writer.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Tasks.Parallel", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.Parallel.dll", - "compatibility": "valid" - }, - { - "name": "System.ComponentModel.Annotations", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.Annotations.dll", - "compatibility": "valid" - }, - { - "name": "System.Linq", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.dll", - "compatibility": "valid" - }, - { - "name": "System.ObjectModel", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ObjectModel.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.WebSockets", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebSockets.dll", - "compatibility": "valid" - }, - { - "name": "System.Transactions", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Transactions.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.Process", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Process.dll", - "compatibility": "valid" - }, - { - "name": "netstandard", - "version": "2.1.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\netstandard.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.dll", - "compatibility": "valid" - }, - { - "name": "System.Collections.Immutable", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.Immutable.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Serialization.Json", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Json.dll", - "compatibility": "valid" - }, - { - "name": "System.Collections", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.FileSystem.DriveInfo", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.DriveInfo.dll", - "compatibility": "valid" - }, - { - "name": "System.Memory", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Memory.dll", - "compatibility": "valid" - }, - { - "name": "System.ComponentModel", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.NetworkInformation", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.NetworkInformation.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Serialization", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.dll", - "compatibility": "valid" - }, - { - "name": "System.Linq.Parallel", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.Parallel.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Http.Json", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Http.Json.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Tasks", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.TypeExtensions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.TypeExtensions.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Tasks.Extensions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.Extensions.dll", - "compatibility": "valid" - }, - { - "name": "System.Linq.Expressions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.Expressions.dll", - "compatibility": "valid" - }, - { - "name": "System.ComponentModel.TypeConverter", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.TypeConverter.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.Tools", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Tools.dll", - "compatibility": "valid" - }, - { - "name": "System.Data.Common", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Data.Common.dll", - "compatibility": "valid" - }, - { - "name": "System.Formats.Asn1", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Formats.Asn1.dll", - "compatibility": "valid" - }, - { - "name": "System.Resources.Reader", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Resources.Reader.dll", - "compatibility": "valid" - }, - { - "name": "System.Resources.ResourceManager", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Resources.ResourceManager.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Http", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Http.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.Compression.FileSystem", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.FileSystem.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.CSharp", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.CSharp.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Cryptography.Cng", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Cng.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Sockets", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Sockets.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.InteropServices", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.InteropServices.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Timer", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Timer.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.CompilerServices.VisualC", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.CompilerServices.VisualC.dll", - "compatibility": "valid" - }, - { - "name": "System.Web.HttpUtility", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Web.HttpUtility.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Ping", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Ping.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Claims", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Claims.dll", - "compatibility": "valid" - }, - { - "name": "System.Collections.Concurrent", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.Concurrent.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Serialization.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Loader", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Loader.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.ReaderWriter", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.ReaderWriter.dll", - "compatibility": "valid" - }, - { - "name": "System.ComponentModel.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.IsolatedStorage", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.IsolatedStorage.dll", - "compatibility": "valid" - }, - { - "name": "System.Numerics.Vectors", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Numerics.Vectors.dll", - "compatibility": "valid" - }, - { - "name": "System.AppContext", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.AppContext.dll", - "compatibility": "valid" - }, - { - "name": "System.Numerics", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Numerics.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.Contracts", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Contracts.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.AccessControl", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.AccessControl.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Principal.Windows", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Principal.Windows.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.XPath.XDocument", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XPath.XDocument.dll", - "compatibility": "valid" - }, - { - "name": "System.Collections.NonGeneric", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.NonGeneric.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.DispatchProxy", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.DispatchProxy.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.Pipes", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Pipes.dll", - "compatibility": "valid" - }, - { - "name": "System.Security", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.MemoryMappedFiles", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.MemoryMappedFiles.dll", - "compatibility": "valid" - }, - { - "name": "System.Configuration", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Configuration.dll", - "compatibility": "valid" - }, - { - "name": "System.Data", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Data.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.ThreadPool", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.ThreadPool.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.Compression.ZipFile", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.ZipFile.dll", - "compatibility": "valid" - }, - { - "name": "mscorlib", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\mscorlib.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.FileSystem", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.dll", - "compatibility": "valid" - }, - { - "name": "System.Text.Json", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Json.dll", - "compatibility": "valid" - }, - { - "name": "System.ComponentModel.DataAnnotations", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.DataAnnotations.dll", - "compatibility": "valid" - }, - { - "name": "System.Globalization", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Globalization.dll", - "compatibility": "valid" - }, - { - "name": "System.Drawing", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Drawing.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Cryptography.X509Certificates", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.X509Certificates.dll", - "compatibility": "valid" - }, - { - "name": "System.Windows", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Windows.dll", - "compatibility": "valid" - }, - { - "name": "System.Collections.Specialized", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Collections.Specialized.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Extensions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Extensions.dll", - "compatibility": "valid" - }, - { - "name": "System.ComponentModel.EventBasedAsync", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ComponentModel.EventBasedAsync.dll", - "compatibility": "valid" - }, - { - "name": "System.ServiceProcess", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ServiceProcess.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Requests", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Requests.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.Linq", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.Linq.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.Emit.Lightweight", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Emit.Lightweight.dll", - "compatibility": "valid" - }, - { - "name": "System.Dynamic.Runtime", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Dynamic.Runtime.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Security", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Security.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.Compression.Brotli", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.Brotli.dll", - "compatibility": "valid" - }, - { - "name": "System.IO", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.DiagnosticSource", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.DiagnosticSource.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.XDocument", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XDocument.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.Extensions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Extensions.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Overlapped", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Overlapped.dll", - "compatibility": "valid" - }, - { - "name": "System.Drawing.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Drawing.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System.Net", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Cryptography.OpenSsl", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.OpenSsl.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.Pipes.AccessControl", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Pipes.AccessControl.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.HttpListener", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.HttpListener.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.Emit.ILGeneration", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Emit.ILGeneration.dll", - "compatibility": "valid" - }, - { - "name": "System.Text.Encoding.CodePages", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encoding.CodePages.dll", - "compatibility": "valid" - }, - { - "name": "System.Threading.Tasks.Dataflow", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Threading.Tasks.Dataflow.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.WebProxy", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebProxy.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.FileVersionInfo", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.FileVersionInfo.dll", - "compatibility": "valid" - }, - { - "name": "System.Text.RegularExpressions", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.RegularExpressions.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.Debug", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.Debug.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Handles", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Handles.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.VisualBasic.Core", - "version": "11.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\Microsoft.VisualBasic.Core.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.XmlSerializer", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XmlSerializer.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.Metadata", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Metadata.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.dll", - "compatibility": "valid" - }, - { - "name": "System.Data.DataSetExtensions", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Data.DataSetExtensions.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.Compression", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.Compression.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.FileSystem.AccessControl", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.FileSystem.AccessControl.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.XmlDocument", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XmlDocument.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.Cryptography.Csp", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.Cryptography.Csp.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.Emit", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Emit.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.InteropServices.RuntimeInformation", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.InteropServices.RuntimeInformation.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Mail", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Mail.dll", - "compatibility": "valid" - }, - { - "name": "System.Reflection.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Reflection.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.CompilerServices.Unsafe", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.CompilerServices.Unsafe.dll", - "compatibility": "valid" - }, - { - "name": "System.Security.SecureString", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Security.SecureString.dll", - "compatibility": "valid" - }, - { - "name": "System.Linq.Queryable", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Linq.Queryable.dll", - "compatibility": "valid" - }, - { - "name": "System.Console", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Console.dll", - "compatibility": "valid" - }, - { - "name": "System.Diagnostics.TextWriterTraceListener", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Diagnostics.TextWriterTraceListener.dll", - "compatibility": "valid" - }, - { - "name": "System.Text.Encoding", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Text.Encoding.dll", - "compatibility": "valid" - }, - { - "name": "System.ServiceModel.Web", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.ServiceModel.Web.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.WebHeaderCollection", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.WebHeaderCollection.dll", - "compatibility": "valid" - }, - { - "name": "System.IO.UnmanagedMemoryStream", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.IO.UnmanagedMemoryStream.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Serialization.Xml", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Serialization.Xml.dll", - "compatibility": "valid" - }, - { - "name": "System.Runtime.Numerics", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Runtime.Numerics.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.ServicePoint", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.ServicePoint.dll", - "compatibility": "valid" - }, - { - "name": "System.Net.Primitives", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Net.Primitives.dll", - "compatibility": "valid" - }, - { - "name": "System.Xml.XPath", - "version": "6.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Program Files\\dotnet\\packs\\Microsoft.NETCore.App.Ref\\6.0.36\\ref\\net6.0\\System.Xml.XPath.dll", - "compatibility": "valid" - }, - { - "name": "nunit.framework.legacy", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\nunit\\4.0.0\\lib\\net6.0\\nunit.framework.legacy.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.VisualStudio.TestPlatform.Common", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.VisualStudio.TestPlatform.Common.dll", - "compatibility": "valid" - }, - { - "name": "Newtonsoft.Json", - "version": "13.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\newtonsoft.json\\13.0.1\\lib\\netstandard2.0\\Newtonsoft.Json.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.TestPlatform.Utilities", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.Utilities.dll", - "compatibility": "valid" - }, - { - "name": "testhost", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\testhost.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.VisualStudio.TestPlatform.ObjectModel", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", - "compatibility": "valid" - }, - { - "name": "nunit.framework", - "version": "4.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\nunit\\4.0.0\\lib\\net6.0\\nunit.framework.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.TestPlatform.CrossPlatEngine", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.CrossPlatEngine.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.TestPlatform.PlatformAbstractions", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.PlatformAbstractions.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.TestPlatform.CoreUtilities", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.CoreUtilities.dll", - "compatibility": "valid" - }, - { - "name": "NuGet.Frameworks", - "version": "6.5.0.154", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\nuget.frameworks\\6.5.0\\lib\\netstandard2.0\\NuGet.Frameworks.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.TestPlatform.CommunicationUtilities", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.testplatform.testhost\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.TestPlatform.CommunicationUtilities.dll", - "compatibility": "valid" - }, - { - "name": "Microsoft.VisualStudio.CodeCoverage.Shim", - "version": "15.0.0.0", - "isTransitive": true, - "physicalPath": "C:\\Users\\TerjeSandstrom\\.nuget\\packages\\microsoft.codecoverage\\17.7.2\\lib\\netcoreapp3.1\\Microsoft.VisualStudio.CodeCoverage.Shim.dll", - "compatibility": "valid" - } - ], - "projectReferences": [], - "frameworkReferences": [] - } - } - ] -} \ No newline at end of file diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/plan.md b/.github/upgrades/scenarios/dotnet-version-upgrade/plan.md deleted file mode 100644 index fae50a3..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/plan.md +++ /dev/null @@ -1,38 +0,0 @@ -# .NET Version Upgrade Plan - -## Overview - -**Target**: Upgrade DataDrivenTests project from .NET 6 to .NET 10 -**Scope**: Single project (~37 LOC), SDK-style, no dependencies, no compatibility issues - -### Selected Strategy -**All-At-Once** — All projects upgraded simultaneously in a single operation. -**Rationale**: Single project with no dependencies, already on modern .NET (net6.0), straightforward TFM update. - -## Tasks - -### 01-prerequisites: Verify upgrade prerequisites - -Validate that the development environment is ready for .NET 10. Check that .NET 10 SDK is installed and that any global.json files in the repository are compatible with .NET 10. This ensures the upgrade can proceed smoothly without toolchain issues. - -**Done when**: -- .NET 10 SDK installation confirmed -- global.json compatibility verified (or no global.json present) -- No toolchain blockers identified - ---- - -### 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 - -Update the DataDrivenTests project to target net10.0. This involves updating the TargetFramework in the project file and verifying that all NuGet packages (if any are added in the future) remain compatible. Since the assessment shows no packages currently, this is primarily a TFM update with verification. - -Assessment context: -- Current: net6.0, SDK-style -- No NuGet packages to update -- No API compatibility issues detected -- 2 code files, 37 lines of code - -**Done when**: -- Project file updated to target net10.0 -- Solution builds successfully with zero errors and zero warnings -- All existing tests pass diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md deleted file mode 100644 index ebe360f..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario-instructions.md +++ /dev/null @@ -1,35 +0,0 @@ -# .NET Version Upgrade - -## Preferences -- **Flow Mode**: Automatic -- **Target Framework**: net10.0 (.NET 10 - LTS) -- **Project Path**: C:\repos\nunit\nunit-csharp-samples\DataDrivenTests\DataDrivenTests.csproj - -## Upgrade Options -**Source**: .github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md - -### Strategy -- Upgrade Strategy: All-at-Once - -## Source Control -- **Source Branch**: update -- **Working Branch**: upgrade-dotnet-10 -- **Commit Strategy**: Single Commit at End -- **Branch Sync**: Auto (Merge) - -## Strategy -**Selected**: All-at-Once -**Rationale**: Single project with no dependencies, already on modern .NET (net6.0), straightforward TFM update with no compatibility issues. - -### Execution Constraints -- Single atomic upgrade — all projects (in this case, one project) updated together -- Validate full solution build after upgrade with zero errors and zero warnings -- No tier ordering or phasing — complete upgrade in one pass -- Build and fix all compilation errors in a single bounded pass (not a retry loop) - -## User Preferences - -## Key Decisions Log - -## Reminders & Deferred Items -- Convert to Central Package Management (CPM) after .NET upgrade completes (2025-01-20) diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json b/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json deleted file mode 100644 index c3357d3..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/scenario.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "scenarioId": "dotnet-version-upgrade", - "operationId": "0db2b3e4-9a07-46c2-baa6-a69962a335d3", - "description": "Upgrade .NET projects to newer .NET versions, including guidance on current release status, support lifecycle (LTS/STS), and recommended upgrade targets.", - "startTime": "2026-06-27T18:44:22.1564183Z", - "lastUpdateTime": "2026-06-27T18:48:36.1919626Z", - "properties": { - "UpgradeTargetFramework": "net10.0", - "taskStates": { - "01-prerequisites": "Completed", - "02-upgrade-project": "InProgress" - } - }, - "folderPath": "" -} \ No newline at end of file diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md deleted file mode 100644 index fd175a6..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks.md +++ /dev/null @@ -1,12 +0,0 @@ -# .NET Version Upgrade Progress - -## Overview -**Progress**: 1/2 tasks complete 50% -**Progress**: 1/2 tasks complete 50% -**Progress**: 0/2 tasks complete 0% -**Progress**: 0/2 tasks complete 0% - -- ✅ 01-prerequisites: Verify upgrade prerequisites ([Content](tasks/01-prerequisites/task.md), [Progress](tasks/01-prerequisites/progress-details.md)) -- 🔄 01-prerequisites: Verify upgrade prerequisites ([Content](tasks/01-prerequisites/task.md)) -- 🔄 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 ([Content](tasks/02-upgrade-project/task.md)) -- 🔲 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md deleted file mode 100644 index cb1d08b..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/progress-details.md +++ /dev/null @@ -1,30 +0,0 @@ -# Task 01-prerequisites: Progress Details - -## Summary -Verified that the development environment is ready for .NET 10 upgrade. - -## Changes Made -None — verification only. - -## Validation Results - -### .NET 10 SDK Installation -✅ **Confirmed** — Compatible .NET 10 SDK found on the system. - -### global.json Compatibility -✅ **Verified** — No global.json file found in the repository. No compatibility constraints to check. - -### Toolchain Blockers -✅ **None identified** — Environment is ready for upgrade to .NET 10. - -## Build Results -N/A — No code changes made, no build required. - -## Test Results -N/A — No code changes made, no tests required. - -## Issues Resolved -None — all prerequisites met on first check. - -## Files Modified -None — verification task only. diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md deleted file mode 100644 index ca4e32e..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/01-prerequisites/task.md +++ /dev/null @@ -1,8 +0,0 @@ -# 01-prerequisites: Verify upgrade prerequisites - -Validate that the development environment is ready for .NET 10. Check that .NET 10 SDK is installed and that any global.json files in the repository are compatible with .NET 10. This ensures the upgrade can proceed smoothly without toolchain issues. - -**Done when**: -- .NET 10 SDK installation confirmed -- global.json compatibility verified (or no global.json present) -- No toolchain blockers identified diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md deleted file mode 100644 index 05734ac..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/progress-details.md +++ /dev/null @@ -1,59 +0,0 @@ -# Task 02-upgrade-project: Progress Details - -## Summary -Successfully upgraded DataDrivenTests project from .NET 6 to .NET 10. - -## Changes Made - -### Project File Modified -**File**: `DataDrivenTests/DataDrivenTests.csproj` - -1. **Target Framework Updated** - - Changed: `net6.0` - - To: `net10.0` - -2. **NUnit Package Updated** - - Changed: `NUnit` version from `4.0.0-dev-07984` (development version) - - To: `NUnit` version `4.0.0` (stable release) - - Reason: Resolved NU1603 warning where the dev version was not found on NuGet and was auto-resolved to stable 4.0.0 - -## Validation Results - -### Build Results -✅ **SUCCESS** — Project builds with zero errors and zero warnings - -``` -Build succeeded in 1.7s -- 0 errors -- 0 warnings -``` - -Note: NETSDK1057 is an informational message (info level) about using a preview .NET version, not a warning. - -### Test Results -✅ **SUCCESS** — All tests pass - -``` -Test summary: total: 4, failed: 0, succeeded: 4, skipped: 0, duration: 2.1s -``` - -Tests executed: -- TestArguments: X is 10 ✅ -- TestArguments: X is 42 ✅ -- TestType: System.Int32 ✅ -- TestType: System.String ✅ - -### Done When Criteria Verification -✅ **Project file updated to target net10.0** — Confirmed in DataDrivenTests.csproj -✅ **Solution builds successfully with zero errors and zero warnings** — Build succeeded with 0 errors, 0 warnings -✅ **All existing tests pass** — 4/4 tests passed - -## Issues Resolved - -### Issue: NU1603 Warning -**Problem**: NuGet warning `NU1603: DataDrivenTests depends on NUnit (>= 4.0.0-dev-07984) but NUnit 4.0.0-dev-07984 was not found` - -**Resolution**: Updated package reference from development version `4.0.0-dev-07984` to stable release `4.0.0`. This eliminates the warning and uses a more stable package version appropriate for .NET 10. - -## Files Modified -1. `DataDrivenTests/DataDrivenTests.csproj` — Updated TargetFramework to net10.0 and NUnit package version to 4.0.0 diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md b/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md deleted file mode 100644 index d0c2a9e..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/tasks/02-upgrade-project/task.md +++ /dev/null @@ -1,14 +0,0 @@ -# 02-upgrade-project: Upgrade DataDrivenTests to .NET 10 - -Update the DataDrivenTests project to target net10.0. This involves updating the TargetFramework in the project file and verifying that all NuGet packages (if any are added in the future) remain compatible. Since the assessment shows no packages currently, this is primarily a TFM update with verification. - -Assessment context: -- Current: net6.0, SDK-style -- No NuGet packages to update -- No API compatibility issues detected -- 2 code files, 37 lines of code - -**Done when**: -- Project file updated to target net10.0 -- Solution builds successfully with zero errors and zero warnings -- All existing tests pass diff --git a/.github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md b/.github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md deleted file mode 100644 index 16fa45f..0000000 --- a/.github/upgrades/scenarios/dotnet-version-upgrade/upgrade-options.md +++ /dev/null @@ -1,12 +0,0 @@ -# Upgrade Options — nunit-csharp-samples - -Assessment: 1 project, net6.0 → net10.0, SDK-style, 0 packages, no compatibility issues - -## Strategy - -### Upgrade Strategy -Single project with no dependencies — straightforward TFM update. - -| Value | Description | -|-------|-------------| -| **All-at-Once** (selected) | Upgrade all projects simultaneously in a single atomic pass | diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 77e9565..1e2bba9 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,9 +1,6 @@ -# This workflow will build a .NET project -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net +name: Samples.CI -name: .NET - -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] jobs: build: @@ -15,7 +12,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 6.0.x + dotnet-version: 10.0.x - name: Restore dependencies run: dotnet restore - name: Build diff --git a/Samples.slnx b/Samples.slnx index 6e66b61..c16b8f0 100644 --- a/Samples.slnx +++ b/Samples.slnx @@ -1,6 +1,7 @@ +