diff --git a/docs/csharp_binary.md b/docs/csharp_binary.md
index 90999e81..0e8529f8 100644
--- a/docs/csharp_binary.md
+++ b/docs/csharp_binary.md
@@ -8,11 +8,11 @@ Rule for compiling C# binaries.
csharp_binary(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
- appsetting_files, compile_data, compiler_options, defines, generate_documentation_file,
- include_host_model_dll, internals_visible_to, keyfile, langversion, nowarn, nullable,
- project_sdk, roll_forward_behavior, run_analyzers, target_frameworks,
- treat_warnings_as_errors, warning_level, warnings_as_errors, warnings_not_as_errors,
- winexe)
+ analyzer_configs, appsetting_files, compile_data, compiler_options, defines,
+ generate_documentation_file, include_host_model_dll, internals_visible_to, keyfile,
+ langversion, nowarn, nullable, project_sdk, roll_forward_behavior, run_analyzers,
+ target_frameworks, treat_warnings_as_errors, warning_level, warnings_as_errors,
+ warnings_not_as_errors, winexe)
Compile a C# exe
@@ -30,6 +30,7 @@ Compile a C# exe
| out | File name, without extension, of the built assembly. | String | optional | `""` |
| additionalfiles | Extra files to configure analyzers. | List of labels | optional | `[]` |
| allow_unsafe_blocks | Allow compiling unsafe code. It true, /unsafe is passed to the compiler. | Boolean | optional | `False` |
+| analyzer_configs | A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files | List of labels | optional | `[]` |
| appsetting_files | A list of appsettings files to include in the output directory. | List of labels | optional | `[]` |
| compile_data | Additional compile time files. | List of labels | optional | `[]` |
| compiler_options | Additional options to pass to the compiler. This attribute should only be used if the compiler flag has not already been exposed as an attribute. | List of strings | optional | `[]` |
diff --git a/docs/csharp_library.md b/docs/csharp_library.md
index 3a970727..e1dfe477 100644
--- a/docs/csharp_library.md
+++ b/docs/csharp_library.md
@@ -8,8 +8,9 @@ Rule for compiling C# libraries.
csharp_library(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
- compile_data, compiler_options, defines, exports, generate_documentation_file,
- internals_visible_to, keyfile, langversion, nowarn, nullable, project_sdk,
+ analyzer_configs, compile_data, compiler_options, defines, exports,
+ generate_documentation_file, internals_visible_to, is_analyzer,
+ is_language_specific_analyzer, keyfile, langversion, nowarn, nullable, project_sdk,
run_analyzers, target_frameworks, treat_warnings_as_errors, warning_level,
warnings_as_errors, warnings_not_as_errors)
@@ -29,12 +30,15 @@ Compile a C# DLL
| out | File name, without extension, of the built assembly. | String | optional | `""` |
| additionalfiles | Extra files to configure analyzers. | List of labels | optional | `[]` |
| allow_unsafe_blocks | Allow compiling unsafe code. It true, /unsafe is passed to the compiler. | Boolean | optional | `False` |
+| analyzer_configs | A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files | List of labels | optional | `[]` |
| compile_data | Additional compile time files. | List of labels | optional | `[]` |
| compiler_options | Additional options to pass to the compiler. This attribute should only be used if the compiler flag has not already been exposed as an attribute. | List of strings | optional | `[]` |
| defines | A list of preprocessor directive symbols to define. | List of strings | optional | `[]` |
| exports | List of targets to add to the dependencies of those that depend on this target. Use this sparingly as it weakens the precision of the build graph.
This attribute does nothing if you don't have strict dependencies enabled. | List of labels | optional | `[]` |
| generate_documentation_file | Whether or not to generate a documentation file. | Boolean | optional | `True` |
| internals_visible_to | Other libraries that can see the assembly's internal symbols. Using this rather than the InternalsVisibleTo assembly attribute will improve build caching. | List of strings | optional | `[]` |
+| is_analyzer | Whether this library is an analyzer or not. This flag is needs to be set to true if the library is an analyzer or a source generator. | Boolean | optional | `False` |
+| is_language_specific_analyzer | Whether this library is a language specific analyzer/source generator or not. This flag is needs to be set to true if the library is a analyzer that is specific to a language or if the library is a source generator. | Boolean | optional | `False` |
| keyfile | The key file used to sign the assembly with a strong name. | Label | optional | `None` |
| langversion | The version string for the language. | String | optional | `""` |
| nowarn | List of warnings that should be ignored | List of strings | optional | `["CS1701", "CS1702"]` |
diff --git a/docs/csharp_test.md b/docs/csharp_test.md
index 5a773bbd..115b2298 100644
--- a/docs/csharp_test.md
+++ b/docs/csharp_test.md
@@ -11,10 +11,11 @@ a Bazel test.
csharp_test(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
- appsetting_files, compile_data, compiler_options, defines, generate_documentation_file,
- internals_visible_to, keyfile, langversion, nowarn, nullable, project_sdk,
- roll_forward_behavior, run_analyzers, target_frameworks, treat_warnings_as_errors,
- warning_level, warnings_as_errors, warnings_not_as_errors, winexe)
+ analyzer_configs, appsetting_files, compile_data, compiler_options, defines,
+ generate_documentation_file, internals_visible_to, keyfile, langversion, nowarn, nullable,
+ project_sdk, roll_forward_behavior, run_analyzers, target_frameworks,
+ treat_warnings_as_errors, warning_level, warnings_as_errors, warnings_not_as_errors,
+ winexe)
Compiles a C# executable and runs it as a test
@@ -32,6 +33,7 @@ Compiles a C# executable and runs it as a test
| out | File name, without extension, of the built assembly. | String | optional | `""` |
| additionalfiles | Extra files to configure analyzers. | List of labels | optional | `[]` |
| allow_unsafe_blocks | Allow compiling unsafe code. It true, /unsafe is passed to the compiler. | Boolean | optional | `False` |
+| analyzer_configs | A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files | List of labels | optional | `[]` |
| appsetting_files | A list of appsettings files to include in the output directory. | List of labels | optional | `[]` |
| compile_data | Additional compile time files. | List of labels | optional | `[]` |
| compiler_options | Additional options to pass to the compiler. This attribute should only be used if the compiler flag has not already been exposed as an attribute. | List of strings | optional | `[]` |
diff --git a/docs/defs.md b/docs/defs.md
index 63b3449d..f9ef1186 100644
--- a/docs/defs.md
+++ b/docs/defs.md
@@ -10,11 +10,11 @@ Users should not load files under "/dotnet"
csharp_binary(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
- appsetting_files, compile_data, compiler_options, defines, generate_documentation_file,
- include_host_model_dll, internals_visible_to, keyfile, langversion, nowarn, nullable,
- project_sdk, roll_forward_behavior, run_analyzers, target_frameworks,
- treat_warnings_as_errors, warning_level, warnings_as_errors, warnings_not_as_errors,
- winexe)
+ analyzer_configs, appsetting_files, compile_data, compiler_options, defines,
+ generate_documentation_file, include_host_model_dll, internals_visible_to, keyfile,
+ langversion, nowarn, nullable, project_sdk, roll_forward_behavior, run_analyzers,
+ target_frameworks, treat_warnings_as_errors, warning_level, warnings_as_errors,
+ warnings_not_as_errors, winexe)
Compile a C# exe
@@ -32,6 +32,7 @@ Compile a C# exe
| out | File name, without extension, of the built assembly. | String | optional | `""` |
| additionalfiles | Extra files to configure analyzers. | List of labels | optional | `[]` |
| allow_unsafe_blocks | Allow compiling unsafe code. It true, /unsafe is passed to the compiler. | Boolean | optional | `False` |
+| analyzer_configs | A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files | List of labels | optional | `[]` |
| appsetting_files | A list of appsettings files to include in the output directory. | List of labels | optional | `[]` |
| compile_data | Additional compile time files. | List of labels | optional | `[]` |
| compiler_options | Additional options to pass to the compiler. This attribute should only be used if the compiler flag has not already been exposed as an attribute. | List of strings | optional | `[]` |
@@ -60,8 +61,9 @@ Compile a C# exe
csharp_library(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
- compile_data, compiler_options, defines, exports, generate_documentation_file,
- internals_visible_to, keyfile, langversion, nowarn, nullable, project_sdk,
+ analyzer_configs, compile_data, compiler_options, defines, exports,
+ generate_documentation_file, internals_visible_to, is_analyzer,
+ is_language_specific_analyzer, keyfile, langversion, nowarn, nullable, project_sdk,
run_analyzers, target_frameworks, treat_warnings_as_errors, warning_level,
warnings_as_errors, warnings_not_as_errors)
@@ -81,12 +83,15 @@ Compile a C# DLL
| out | File name, without extension, of the built assembly. | String | optional | `""` |
| additionalfiles | Extra files to configure analyzers. | List of labels | optional | `[]` |
| allow_unsafe_blocks | Allow compiling unsafe code. It true, /unsafe is passed to the compiler. | Boolean | optional | `False` |
+| analyzer_configs | A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files | List of labels | optional | `[]` |
| compile_data | Additional compile time files. | List of labels | optional | `[]` |
| compiler_options | Additional options to pass to the compiler. This attribute should only be used if the compiler flag has not already been exposed as an attribute. | List of strings | optional | `[]` |
| defines | A list of preprocessor directive symbols to define. | List of strings | optional | `[]` |
| exports | List of targets to add to the dependencies of those that depend on this target. Use this sparingly as it weakens the precision of the build graph.
This attribute does nothing if you don't have strict dependencies enabled. | List of labels | optional | `[]` |
| generate_documentation_file | Whether or not to generate a documentation file. | Boolean | optional | `True` |
| internals_visible_to | Other libraries that can see the assembly's internal symbols. Using this rather than the InternalsVisibleTo assembly attribute will improve build caching. | List of strings | optional | `[]` |
+| is_analyzer | Whether this library is an analyzer or not. This flag is needs to be set to true if the library is an analyzer or a source generator. | Boolean | optional | `False` |
+| is_language_specific_analyzer | Whether this library is a language specific analyzer/source generator or not. This flag is needs to be set to true if the library is a analyzer that is specific to a language or if the library is a source generator. | Boolean | optional | `False` |
| keyfile | The key file used to sign the assembly with a strong name. | Label | optional | `None` |
| langversion | The version string for the language. | String | optional | `""` |
| nowarn | List of warnings that should be ignored | List of strings | optional | `["CS1701", "CS1702"]` |
@@ -106,10 +111,11 @@ Compile a C# DLL
csharp_test(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
- appsetting_files, compile_data, compiler_options, defines, generate_documentation_file,
- internals_visible_to, keyfile, langversion, nowarn, nullable, project_sdk,
- roll_forward_behavior, run_analyzers, target_frameworks, treat_warnings_as_errors,
- warning_level, warnings_as_errors, warnings_not_as_errors, winexe)
+ analyzer_configs, appsetting_files, compile_data, compiler_options, defines,
+ generate_documentation_file, internals_visible_to, keyfile, langversion, nowarn, nullable,
+ project_sdk, roll_forward_behavior, run_analyzers, target_frameworks,
+ treat_warnings_as_errors, warning_level, warnings_as_errors, warnings_not_as_errors,
+ winexe)
Compiles a C# executable and runs it as a test
@@ -127,6 +133,7 @@ Compiles a C# executable and runs it as a test
| out | File name, without extension, of the built assembly. | String | optional | `""` |
| additionalfiles | Extra files to configure analyzers. | List of labels | optional | `[]` |
| allow_unsafe_blocks | Allow compiling unsafe code. It true, /unsafe is passed to the compiler. | Boolean | optional | `False` |
+| analyzer_configs | A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files | List of labels | optional | `[]` |
| appsetting_files | A list of appsettings files to include in the output directory. | List of labels | optional | `[]` |
| compile_data | Additional compile time files. | List of labels | optional | `[]` |
| compiler_options | Additional options to pass to the compiler. This attribute should only be used if the compiler flag has not already been exposed as an attribute. | List of strings | optional | `[]` |
@@ -303,8 +310,9 @@ Imports a DLL
## import_library
-import_library(name, deps, data, analyzers, framework_list, library_name, libs, native, nupkg, refs,
- sha512, targeting_pack_overrides, version)
+import_library(name, deps, data, analyzers, analyzers_csharp, analyzers_fsharp, analyzers_vb,
+ framework_list, library_name, libs, native, nupkg, refs, sha512,
+ targeting_pack_overrides, version)
Creates a target for a static DLL for a specific target framework
@@ -318,6 +326,9 @@ Creates a target for a static DLL for a specific target framework
| deps | Other DLLs that this DLL depends on. | List of labels | optional | `[]` |
| data | Other files that this DLL depends on at runtime | List of labels | optional | `[]` |
| analyzers | Static analyzer DLLs | List of labels | optional | `[]` |
+| analyzers_csharp | Static C# analyzer DLLs | List of labels | optional | `[]` |
+| analyzers_fsharp | Static F# analyzer DLLs | List of labels | optional | `[]` |
+| analyzers_vb | Static VB analyzer DLLs | List of labels | optional | `[]` |
| framework_list | Targeting packs like e.g. Microsoft.NETCore.App.Ref have a PlatformManifest.txt that includes all the DLLs that are included in the targeting pack. This is used to determine which version of a DLL should be used during compilation or runtime. | Dictionary: String -> String | optional | `{}` |
| library_name | The name of the library | String | required | |
| libs | Static runtime DLLs | List of labels | optional | `[]` |
diff --git a/dotnet/paket.rules_dotnet_dev_nuget_packages.bzl b/dotnet/paket.rules_dotnet_dev_nuget_packages.bzl
index 5a40e9e5..45182b24 100644
--- a/dotnet/paket.rules_dotnet_dev_nuget_packages.bzl
+++ b/dotnet/paket.rules_dotnet_dev_nuget_packages.bzl
@@ -12,13 +12,19 @@ def rules_dotnet_dev_nuget_packages():
{"name": "LibGit2Sharp", "id": "LibGit2Sharp", "version": "0.27.0-preview-0182", "sha512": "sha512-EQZksMK/1/oSuSU+vtc9R3DurosXySQ5uHRO02D5JvAoYdSCOGQ1lTigtvYcVnXcRGdsAlM3pXnYWexNNf7X4g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["LibGit2Sharp.NativeBinaries"], "net462": ["LibGit2Sharp.NativeBinaries"], "net47": ["LibGit2Sharp.NativeBinaries"], "net471": ["LibGit2Sharp.NativeBinaries"], "net472": ["LibGit2Sharp.NativeBinaries"], "net48": ["LibGit2Sharp.NativeBinaries"], "net5.0": ["LibGit2Sharp.NativeBinaries"], "net6.0": ["LibGit2Sharp.NativeBinaries"], "net7.0": ["LibGit2Sharp.NativeBinaries"], "net8.0": ["LibGit2Sharp.NativeBinaries"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["LibGit2Sharp.NativeBinaries"], "netcoreapp2.1": ["LibGit2Sharp.NativeBinaries"], "netcoreapp2.2": ["LibGit2Sharp.NativeBinaries"], "netcoreapp3.0": ["LibGit2Sharp.NativeBinaries"], "netcoreapp3.1": ["LibGit2Sharp.NativeBinaries"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["LibGit2Sharp.NativeBinaries"], "netstandard2.1": ["LibGit2Sharp.NativeBinaries"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "LibGit2Sharp.NativeBinaries", "id": "LibGit2Sharp.NativeBinaries", "version": "2.0.315-alpha.0.9", "sha512": "sha512-YYQfD2dsYdPn9NjR5s4Mcbek0UM76nO00pPUToAS7we3Qknqqh3y6/QV2/GKMv41EDFZ8osGZfCz+qUWows2zw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "Magick.NET.Core", "id": "Magick.NET.Core", "version": "12.2.2", "sha512": "sha512-pCrQcYNwbTHynEYpAa6jKHZmsuSyV0/4ypVDvlgto+5Aks+M0eR8T/aCoFkJO4jS7Rf/xdh0Ujo+MfqBtYGrdA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "7.0.0", "sha512": "sha512-Nb9B1lxCab0LZi0ijNLEpw4hgwt0Wl8QQM1DxIhJS2otChAtIVMfyGrYl3YzdSjspvBYPliJlr0kCtizNAVe3w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "8.0.0", "sha512": "sha512-ecsHc9lEZZJM7k5HHZA1PV2N+ELEarLFcssV2bn7XQIJoaiNZDkplTNcX+VKANfDGURAuEyVFCcRu7aFy16VUg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "Microsoft.CodeAnalysis.Analyzers", "id": "Microsoft.CodeAnalysis.Analyzers", "version": "3.3.4", "sha512": "sha512-I+Riw6/6WjNICydoiNpDjN/GGP7u4XsL6VsI9lG/OjFufH3flvSEy/fxNhGDVGwZWwq/5BlnqX+LH2dmheaPfg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "4.9.2", "sha512": "sha512-XCtqPQdnoqfrBSidFWIESm8exXVHF4yPY94e84St2PVZPc2bGeQNXdFNwadu1Bd2sr/bAgM5B0UHbCqBz+/SeQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "4.9.2", "sha512": "sha512-oy5nUdJOaOQEjUZimhYH4xU6nVxt8ctkdP7HT2fc32ecvH50QeIwJXgjNt7MGUyhJO+Wd3SipQWQ5QyDw7VuLg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common"], "net462": ["Microsoft.CodeAnalysis.Common"], "net47": ["Microsoft.CodeAnalysis.Common"], "net471": ["Microsoft.CodeAnalysis.Common"], "net472": ["Microsoft.CodeAnalysis.Common"], "net48": ["Microsoft.CodeAnalysis.Common"], "net5.0": ["Microsoft.CodeAnalysis.Common"], "net6.0": ["Microsoft.CodeAnalysis.Common"], "net7.0": ["Microsoft.CodeAnalysis.Common"], "net8.0": ["Microsoft.CodeAnalysis.Common"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "NETStandard.Library.Ref", "id": "NETStandard.Library.Ref", "version": "2.1.0", "sha512": "sha512-Jr0OqnqkaJJGEVq3w9oNQrIEteD/4QBNg3YOh1cvRjydzwop07+5aWjO/SfEYu6CwBn+dSBKXj8niEvTNy2brA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": ["Microsoft.Win32.Primitives|4.3.0", "System.AppContext|4.3.0", "System.Collections|4.3.0", "System.Collections.Concurrent|4.3.0", "System.Collections.Immutable|1.4.0", "System.Collections.NonGeneric|4.3.0", "System.Collections.Specialized|4.3.0", "System.ComponentModel|4.3.0", "System.ComponentModel.EventBasedAsync|4.3.0", "System.ComponentModel.Primitives|4.3.0", "System.ComponentModel.TypeConverter|4.3.0", "System.Console|4.3.0", "System.Data.Common|4.3.0", "System.Diagnostics.Contracts|4.3.0", "System.Diagnostics.Debug|4.3.0", "System.Diagnostics.FileVersionInfo|4.3.0", "System.Diagnostics.Process|4.3.0", "System.Diagnostics.StackTrace|4.3.0", "System.Diagnostics.TextWriterTraceListener|4.3.0", "System.Diagnostics.Tools|4.3.0", "System.Diagnostics.TraceSource|4.3.0", "System.Diagnostics.Tracing|4.3.0", "System.Dynamic.Runtime|4.3.0", "System.Globalization|4.3.0", "System.Globalization.Calendars|4.3.0", "System.Globalization.Extensions|4.3.0", "System.IO|4.3.0", "System.IO.Compression|4.3.0", "System.IO.Compression.ZipFile|4.3.0", "System.IO.FileSystem|4.3.0", "System.IO.FileSystem.DriveInfo|4.3.0", "System.IO.FileSystem.Primitives|4.3.0", "System.IO.FileSystem.Watcher|4.3.0", "System.IO.IsolatedStorage|4.3.0", "System.IO.MemoryMappedFiles|4.3.0", "System.IO.Pipes|4.3.0", "System.IO.UnmanagedMemoryStream|4.3.0", "System.Linq|4.3.0", "System.Linq.Expressions|4.3.0", "System.Linq.Queryable|4.3.0", "System.Net.Http|4.3.0", "System.Net.NameResolution|4.3.0", "System.Net.Primitives|4.3.0", "System.Net.Requests|4.3.0", "System.Net.Security|4.3.0", "System.Net.Sockets|4.3.0", "System.Net.WebHeaderCollection|4.3.0", "System.ObjectModel|4.3.0", "System.Private.DataContractSerialization|4.3.0", "System.Reflection|4.3.0", "System.Reflection.Emit|4.3.0", "System.Reflection.Emit.ILGeneration|4.3.0", "System.Reflection.Emit.Lightweight|4.3.0", "System.Reflection.Extensions|4.3.0", "System.Reflection.Primitives|4.3.0", "System.Reflection.TypeExtensions|4.3.0", "System.Resources.ResourceManager|4.3.0", "System.Runtime|4.3.0", "System.Runtime.Extensions|4.3.0", "System.Runtime.Handles|4.3.0", "System.Runtime.InteropServices|4.3.0", "System.Runtime.InteropServices.RuntimeInformation|4.3.0", "System.Runtime.Loader|4.3.0", "System.Runtime.Numerics|4.3.0", "System.Runtime.Serialization.Formatters|4.3.0", "System.Runtime.Serialization.Json|4.3.0", "System.Runtime.Serialization.Primitives|4.3.0", "System.Security.AccessControl|4.4.0", "System.Security.Claims|4.3.0", "System.Security.Cryptography.Algorithms|4.3.0", "System.Security.Cryptography.Csp|4.3.0", "System.Security.Cryptography.Encoding|4.3.0", "System.Security.Cryptography.Primitives|4.3.0", "System.Security.Cryptography.X509Certificates|4.3.0", "System.Security.Cryptography.Xml|4.4.0", "System.Security.Principal|4.3.0", "System.Security.Principal.Windows|4.4.0", "System.Text.Encoding|4.3.0", "System.Text.Encoding.Extensions|4.3.0", "System.Text.RegularExpressions|4.3.0", "System.Threading|4.3.0", "System.Threading.Overlapped|4.3.0", "System.Threading.Tasks|4.3.0", "System.Threading.Tasks.Extensions|4.3.0", "System.Threading.Tasks.Parallel|4.3.0", "System.Threading.Thread|4.3.0", "System.Threading.ThreadPool|4.3.0", "System.Threading.Timer|4.3.0", "System.ValueTuple|4.3.0", "System.Xml.ReaderWriter|4.3.0", "System.Xml.XDocument|4.3.0", "System.Xml.XmlDocument|4.3.0", "System.Xml.XmlSerializer|4.3.0", "System.Xml.XPath|4.3.0", "System.Xml.XPath.XDocument|4.3.0"], "framework_list": ["Microsoft.Win32.Primitives|4.0.3.0", "System.AppContext|4.1.2.0", "System.Buffers|4.0.3.0", "System.Collections.Concurrent|4.0.11.0", "System.Collections.NonGeneric|4.0.3.0", "System.Collections.Specialized|4.0.3.0", "System.Collections|4.0.11.0", "System.ComponentModel.Composition|4.0.0.0", "System.ComponentModel.EventBasedAsync|4.0.11.0", "System.ComponentModel.Primitives|4.1.2.0", "System.ComponentModel.TypeConverter|4.1.2.0", "System.ComponentModel|4.0.1.0", "System.Console|4.0.2.0", "System.Core|4.0.0.0", "System.Data.Common|4.1.2.0", "System.Data|4.0.0.0", "System.Diagnostics.Contracts|4.0.1.0", "System.Diagnostics.Debug|4.0.11.0", "System.Diagnostics.FileVersionInfo|4.0.2.0", "System.Diagnostics.Process|4.1.2.0", "System.Diagnostics.StackTrace|4.0.4.0", "System.Diagnostics.TextWriterTraceListener|4.0.2.0", "System.Diagnostics.Tools|4.0.1.0", "System.Diagnostics.TraceSource|4.0.2.0", "System.Diagnostics.Tracing|4.1.2.0", "System.Drawing.Primitives|4.0.2.0", "System.Drawing|4.0.0.0", "System.Dynamic.Runtime|4.0.11.0", "System.Globalization.Calendars|4.0.3.0", "System.Globalization.Extensions|4.0.3.0", "System.Globalization|4.0.11.0", "System.IO.Compression.FileSystem|4.0.0.0", "System.IO.Compression.ZipFile|4.0.3.0", "System.IO.Compression|4.1.3.0", "System.IO.FileSystem.DriveInfo|4.0.2.0", "System.IO.FileSystem.Primitives|4.0.3.0", "System.IO.FileSystem.Watcher|4.0.2.0", "System.IO.FileSystem|4.0.3.0", "System.IO.IsolatedStorage|4.0.2.0", "System.IO.MemoryMappedFiles|4.0.2.0", "System.IO.Pipes|4.0.2.0", "System.IO.UnmanagedMemoryStream|4.0.3.0", "System.IO|4.1.2.0", "System.Linq.Expressions|4.1.2.0", "System.Linq.Parallel|4.0.1.0", "System.Linq.Queryable|4.0.1.0", "System.Linq|4.1.2.0", "System.Memory|4.0.2.0", "System.Net.Http|4.1.2.0", "System.Net.NameResolution|4.0.2.0", "System.Net.NetworkInformation|4.1.2.0", "System.Net.Ping|4.0.2.0", "System.Net.Primitives|4.0.11.0", "System.Net.Requests|4.0.11.0", "System.Net.Security|4.0.2.0", "System.Net.Sockets|4.1.2.0", "System.Net.WebHeaderCollection|4.0.1.0", "System.Net.WebSockets.Client|4.0.2.0", "System.Net.WebSockets|4.0.2.0", "System.Net|4.0.0.0", "System.Numerics.Vectors|4.1.5.0", "System.Numerics|4.0.0.0", "System.ObjectModel|4.0.11.0", "System.Reflection.DispatchProxy|4.0.5.0", "System.Reflection.Emit.ILGeneration|4.0.1.0", "System.Reflection.Emit.Lightweight|4.0.1.0", "System.Reflection.Emit|4.0.1.0", "System.Reflection.Extensions|4.0.1.0", "System.Reflection.Primitives|4.0.1.0", "System.Reflection|4.1.2.0", "System.Resources.Reader|4.0.2.0", "System.Resources.ResourceManager|4.0.1.0", "System.Resources.Writer|4.0.2.0", "System.Runtime.CompilerServices.VisualC|4.0.2.0", "System.Runtime.Extensions|4.1.2.0", "System.Runtime.Handles|4.0.1.0", "System.Runtime.InteropServices.RuntimeInformation|4.0.2.0", "System.Runtime.InteropServices|4.1.2.0", "System.Runtime.Numerics|4.0.1.0", "System.Runtime.Serialization.Formatters|4.0.2.0", "System.Runtime.Serialization.Json|4.0.1.0", "System.Runtime.Serialization.Primitives|4.1.3.0", "System.Runtime.Serialization.Xml|4.1.3.0", "System.Runtime.Serialization|4.0.0.0", "System.Runtime|4.1.2.0", "System.Security.Claims|4.0.3.0", "System.Security.Cryptography.Algorithms|4.2.2.0", "System.Security.Cryptography.Csp|4.0.2.0", "System.Security.Cryptography.Encoding|4.0.2.0", "System.Security.Cryptography.Primitives|4.0.2.0", "System.Security.Cryptography.X509Certificates|4.1.2.0", "System.Security.Principal|4.0.1.0", "System.Security.SecureString|4.0.2.0", "System.ServiceModel.Web|4.0.0.0", "System.Text.Encoding.Extensions|4.0.11.0", "System.Text.Encoding|4.0.11.0", "System.Text.RegularExpressions|4.1.1.0", "System.Threading.Overlapped|4.0.3.0", "System.Threading.Tasks.Extensions|4.2.1.0", "System.Threading.Tasks.Parallel|4.0.1.0", "System.Threading.Tasks|4.0.11.0", "System.Threading.Thread|4.0.2.0", "System.Threading.ThreadPool|4.0.12.0", "System.Threading.Timer|4.0.1.0", "System.Threading|4.0.11.0", "System.Transactions|4.0.0.0", "System.ValueTuple|4.0.2.0", "System.Web|4.0.0.0", "System.Windows|4.0.0.0", "System.Xml.Linq|4.0.0.0", "System.Xml.ReaderWriter|4.1.1.0", "System.Xml.Serialization|4.0.0.0", "System.Xml.XDocument|4.0.11.0", "System.Xml.XPath.XDocument|4.0.3.0", "System.Xml.XPath|4.0.3.0", "System.Xml.XmlDocument|4.0.3.0", "System.Xml.XmlSerializer|4.0.11.0", "System.Xml|4.0.0.0", "System|4.0.0.0", "mscorlib|4.0.0.0", "netstandard|2.1.0.0"]},
{"name": "System.Buffers", "id": "System.Buffers", "version": "4.5.1", "sha512": "sha512-gNphWOVbm89+C15jebnPRaYykU8De1PFv1YJV24814IfeGGVa3PXRHDS0MLlbdI1pe9Mpv/n4ZK4INwtAjqv8g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "8.0.0", "sha512": "sha512-BXqVkcIrhimvvem6q2ChWkuW6XYYirvb6FlhvuwaMoBqBdpcr4nehJBKP65Tw40UqcUM6oDoODsecM0yjZ6AUw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "System.Memory", "id": "System.Memory", "version": "4.5.5", "sha512": "sha512-6MjlNsl7lKw0Q8lAsw2tQ89ul9x6jD2Yk3EEj+dOFoYGOE9eAUO9wNhvd4O/n97oQXlkyzqKXXUnE+kLElFy3A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net451": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net452": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net46": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.1": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.2": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.3": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.4": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.5": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.6": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.5.0", "sha512": "sha512-nATsBTD2CKr4AYN6eRszhX4sptImWmBJwB/U6XKCWWfnCcrTBw8XSCm3QA9gjppkHTr8OkXUY21MR91D3QZXsw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "8.0.0", "sha512": "sha512-+6sMdkJjee0B6nm3AlBBl7cQaI0oPniLvvkrkFhmEN3fo/hGONaFdwpAaO+GRTlbZe4kRZzFwU7kSXQW0RyJxg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Memory"], "net6.0": ["System.Collections.Immutable"], "net7.0": ["System.Collections.Immutable"], "net8.0": ["System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.0.0", "sha512": "sha512-1AVzAb5OxJNvJLnOADtexNmWgattm2XVOT3TjQTN7Dd4SqoSwai1CsN2fth42uQldJSQdz/sAec0+TzxBFgisw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "System.Security.Principal.Windows", "id": "System.Security.Principal.Windows", "version": "5.0.0", "sha512": "sha512-RKkgqq8ishctQTGbtXqyuOGkUx1fAhkqb1OoHYdRJRlbYLoLWkSkWYHRN/17DzplsSlZtf2Xr8BXjNhO8nRnzQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "8.0.0", "sha512": "sha512-d9rfaxpz7u+1BQem129eOiDgrn0/VQw0kmWuTg1V8K5PDvG0G+CN2BB5io4B27p04sqsdGtRWLjiPXIlI9Rz7Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "System.Text.Encodings.Web", "id": "System.Text.Encodings.Web", "version": "7.0.0", "sha512": "sha512-0WTBXfAhqZ0Y7Qw5trfAKQt/lI2PCb8HFAtHuuZAPxy5qCLBUEqr16YJQ2etn8+M7R6hhrBmKlGBXruzejsENA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "System.Text.Json", "id": "System.Text.Json", "version": "7.0.3", "sha512": "sha512-DqP+zKPdTIT42a/d1tPu+w/hq14QZ8+6tbpuv2GsyrjhqBqbsHH7mNta/sSvOkF3fB+yP7PWr2IjYILinfT6VQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Text.Encodings.Web", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Text.Encodings.Web"], "net8.0": ["System.Text.Encodings.Web"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Text.Encodings.Web", "System.Buffers", "System.Memory", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.5.4", "sha512": "sha512-aAUghud9PHGYc3o9oWPWd0C3xE+TJQw5ZZs78htlR6mr9ky/QEgfXHjyQ2GvOq9H1S0YizcVVKCSin92ZcH8FA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["System.Runtime.CompilerServices.Unsafe"], "net451": ["System.Runtime.CompilerServices.Unsafe"], "net452": ["System.Runtime.CompilerServices.Unsafe"], "net46": ["System.Runtime.CompilerServices.Unsafe"], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.1": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.2": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.3": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.4": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.5": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.6": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
diff --git a/dotnet/private/common.bzl b/dotnet/private/common.bzl
index fcb3d30f..e29f9928 100644
--- a/dotnet/private/common.bzl
+++ b/dotnet/private/common.bzl
@@ -249,7 +249,13 @@ def collect_compile_info(name, deps, targeting_pack, exports, strict_deps):
direct_compile_data = []
transitive_compile_data = []
direct_analyzers = []
+ direct_analyzers_csharp = []
+ direct_analyzers_fsharp = []
+ direct_analyzers_vb = []
transitive_analyzers = []
+ transitive_analyzers_csharp = []
+ transitive_analyzers_fsharp = []
+ transitive_analyzers_vb = []
exports_files = []
@@ -272,6 +278,9 @@ def collect_compile_info(name, deps, targeting_pack, exports, strict_deps):
framework_files.extend(compile_info.irefs)
direct_analyzers.extend(compile_info.analyzers)
+ direct_analyzers_csharp.extend(compile_info.analyzers_csharp)
+ direct_analyzers_fsharp.extend(compile_info.analyzers_fsharp)
+ direct_analyzers_vb.extend(compile_info.analyzers_vb)
direct_compile_data.extend(compile_info.compile_data)
for dep in deps:
@@ -295,6 +304,9 @@ def collect_compile_info(name, deps, targeting_pack, exports, strict_deps):
direct_iref.extend(assembly.irefs if name in assembly.internals_visible_to else assembly.refs)
direct_ref.extend(assembly.refs)
direct_analyzers.extend(assembly.analyzers)
+ direct_analyzers_csharp.extend(assembly.analyzers_csharp)
+ direct_analyzers_fsharp.extend(assembly.analyzers_fsharp)
+ direct_analyzers_vb.extend(assembly.analyzers_vb)
direct_compile_data.extend(assembly.compile_data)
# We take all the exports of each dependency and add them
@@ -313,6 +325,9 @@ def collect_compile_info(name, deps, targeting_pack, exports, strict_deps):
if add_to_output:
transitive_ref.append(transitive_assembly)
transitive_analyzers.append(assembly.transitive_analyzers)
+ transitive_analyzers_csharp.append(assembly.transitive_analyzers_csharp)
+ transitive_analyzers_fsharp.append(assembly.transitive_analyzers_fsharp)
+ transitive_analyzers_vb.append(assembly.transitive_analyzers_vb)
transitive_compile_data.append(assembly.transitive_compile_data)
for file in framework_list.values():
@@ -327,6 +342,9 @@ def collect_compile_info(name, deps, targeting_pack, exports, strict_deps):
depset(direct = direct_iref, transitive = [depset(transitive_ref)]),
depset(direct = direct_ref, transitive = [depset(transitive_ref)]),
depset(direct = direct_analyzers, transitive = transitive_analyzers),
+ depset(direct = direct_analyzers_csharp, transitive = transitive_analyzers_csharp),
+ depset(direct = direct_analyzers_fsharp, transitive = transitive_analyzers_fsharp),
+ depset(direct = direct_analyzers_vb, transitive = transitive_analyzers_vb),
depset(direct = direct_compile_data, transitive = transitive_compile_data),
framework_files,
exports_files,
diff --git a/dotnet/private/providers.bzl b/dotnet/private/providers.bzl
index 929eb529..c9413e8d 100644
--- a/dotnet/private/providers.bzl
+++ b/dotnet/private/providers.bzl
@@ -7,13 +7,19 @@ DotnetAssemblyCompileInfo = provider(
"project_sdk": "string: The SDK being targeted",
"refs": "list[File]: Reference-only assemblies containing only public symbols. See docs/ReferenceAssemblies.md for more info.",
"irefs": "list[File]: Reference-only assemblies containing public and internal symbols. See docs/ReferenceAssemblies.md for more info.",
- "analyzers": "list[File]: Analyzer dlls",
+ "analyzers": "list[File]: Common language analyzer dlls",
+ "analyzers_csharp": "list[File]: C# analyzer dlls",
+ "analyzers_fsharp": "list[File]: F# analyzer dlls",
+ "analyzers_vb": "list[File]: VB analyzer dlls",
"internals_visible_to": "list[string]: A list of assemblies that can use the assemblies listed in iref for compilation. See docs/ReferenceAssemblies.md for more info.",
"compile_data": "list[File]: Compile data files",
"exports": "list[File]",
"transitive_refs": "depset[File]: Transitive reference-only assemblies containing only public symbols. Only used when strict deps are off.",
"transitive_compile_data": "depset[File]: Transitive compile data files. Only used when strict deps are off.",
"transitive_analyzers": "depset[File]: Transitive analyzer dlls. Only used when strict deps are off.",
+ "transitive_analyzers_csharp": "depset[File]: Transitive C# analyzer dlls. Only used when strict deps are off.",
+ "transitive_analyzers_fsharp": "depset[File]: Transitive F# analyzer dlls. Only used when strict deps are off.",
+ "transitive_analyzers_vb": "depset[File]: Transitive VB analyzer dlls. Only used when strict deps are off.",
},
)
diff --git a/dotnet/private/rules/common/attrs.bzl b/dotnet/private/rules/common/attrs.bzl
index 9ae01e62..47676975 100644
--- a/dotnet/private/rules/common/attrs.bzl
+++ b/dotnet/private/rules/common/attrs.bzl
@@ -225,6 +225,14 @@ CSHARP_COMMON_ATTRS = dicts.add(
mandatory = False,
default = ["CS1701", "CS1702"],
),
+ "analyzer_configs": attr.label_list(
+ doc = "A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files",
+ allow_files = True,
+ allow_empty = True,
+ # We transition to the default configuration because the end user might have analyzer_configs
+ # that is generated by a dotnet binary
+ cfg = default_transition,
+ ),
},
)
@@ -232,6 +240,16 @@ CSHARP_COMMON_ATTRS = dicts.add(
CSHARP_LIBRARY_COMMON_ATTRS = dicts.add(
CSHARP_COMMON_ATTRS,
LIBRARY_COMMON_ATTRS,
+ {
+ "is_analyzer": attr.bool(
+ doc = "Whether this library is an analyzer or not. This flag is needs to be set to true if the library is an analyzer or a source generator.",
+ default = False,
+ ),
+ "is_language_specific_analyzer": attr.bool(
+ doc = "Whether this library is a language specific analyzer/source generator or not. This flag is needs to be set to true if the library is a analyzer that is specific to a language or if the library is a source generator.",
+ default = False,
+ ),
+ },
)
# These are attributes that are common across all the binary C# rules
diff --git a/dotnet/private/rules/csharp/actions/csharp_assembly.bzl b/dotnet/private/rules/csharp/actions/csharp_assembly.bzl
index df29db73..f5231c8e 100644
--- a/dotnet/private/rules/csharp/actions/csharp_assembly.bzl
+++ b/dotnet/private/rules/csharp/actions/csharp_assembly.bzl
@@ -86,6 +86,9 @@ def AssemblyAction(
allow_unsafe_blocks,
nullable,
run_analyzers,
+ is_analyzer,
+ is_language_specific_analyzer,
+ analyzer_configs,
compiler_options,
is_windows):
"""Creates an action that runs the CSharp compiler with the specified inputs.
@@ -126,6 +129,9 @@ def AssemblyAction(
allow_unsafe_blocks: Compiles the target with /unsafe
nullable: Enable nullable context, or nullable warnings.
run_analyzers: Enable analyzers.
+ is_analyzer: Whether or not the target is an analyzer.
+ is_language_specific_analyzer: Whether or not the target is a language specific analyzer.
+ analyzer_configs: List of analyzer configuration files.
compiler_options: Additional options to pass to the compiler.
is_windows: Whether or not the target is running on Windows.
Returns:
@@ -138,6 +144,9 @@ def AssemblyAction(
irefs,
prefs,
analyzers,
+ analyzers_csharp,
+ analyzers_fsharp,
+ analyzers_vb,
transitive_compile_data,
framework_files,
exports_files,
@@ -163,12 +172,14 @@ def AssemblyAction(
# Appsettings
out_appsettings = copy_files_to_dir(target_name, actions, is_windows, appsetting_files, out_dir)
- if len(internals_visible_to) == 0:
+ if len(internals_visible_to) == 0 or is_analyzer:
_compile(
actions,
compiler_wrapper,
additionalfiles,
analyzers,
+ analyzers_csharp,
+ analyzer_configs,
debug,
default_lang_version,
defines,
@@ -216,6 +227,8 @@ def AssemblyAction(
compiler_wrapper,
additionalfiles,
analyzers,
+ analyzers_csharp,
+ analyzer_configs,
debug,
default_lang_version,
defines,
@@ -252,6 +265,8 @@ def AssemblyAction(
compiler_wrapper,
additionalfiles,
analyzers,
+ analyzers_csharp,
+ analyzer_configs,
debug,
default_lang_version,
defines,
@@ -286,19 +301,25 @@ def AssemblyAction(
name = assembly_name,
version = "1.0.0", #TODO: Maybe make this configurable?
project_sdk = project_sdk,
- refs = [out_ref],
+ refs = [out_ref] if not is_analyzer else [],
irefs = [out_iref] if out_iref else [out_ref],
- analyzers = [],
+ analyzers = [] if (not is_analyzer) or is_language_specific_analyzer else [out_dll],
+ analyzers_csharp = [out_dll] if is_language_specific_analyzer else [],
+ analyzers_fsharp = [],
+ analyzers_vb = [],
internals_visible_to = internals_visible_to or [],
compile_data = compile_data,
exports = exports_files,
transitive_refs = prefs,
transitive_analyzers = analyzers,
+ transitive_analyzers_csharp = analyzers_csharp,
+ transitive_analyzers_fsharp = analyzers_fsharp,
+ transitive_analyzers_vb = analyzers_vb,
transitive_compile_data = transitive_compile_data,
), DotnetAssemblyRuntimeInfo(
name = assembly_name,
version = "1.0.0", #TODO: Maybe make this configurable?
- libs = [out_dll],
+ libs = [out_dll] if not is_analyzer else [],
pdbs = [out_pdb] if out_pdb else [],
xml_docs = [out_xml] if out_xml else [],
data = data,
@@ -314,6 +335,8 @@ def _compile(
compiler_wrapper,
additionalfiles,
analyzer_assemblies,
+ analyzer_assemblies_csharp,
+ analyzer_configs,
debug,
default_lang_version,
defines,
@@ -421,7 +444,9 @@ def _compile(
# analyzers
if run_analyzers:
args.add_all(analyzer_assemblies, format_each = "/analyzer:%s")
+ args.add_all(analyzer_assemblies_csharp, format_each = "/analyzer:%s")
args.add_all(additionalfiles, format_each = "/additionalfile:%s")
+ args.add_all(analyzer_configs, format_each = "/analyzerconfig:%s")
# .cs files
args.add_all(srcs)
@@ -446,7 +471,7 @@ def _compile(
args.use_param_file("@%s", use_always = True)
- direct_inputs = srcs + resources + additionalfiles + [toolchain.csharp_compiler.files_to_run.executable]
+ direct_inputs = srcs + resources + additionalfiles + analyzer_configs + [toolchain.csharp_compiler.files_to_run.executable]
direct_inputs += [keyfile] if keyfile else []
# dotnet.exe csc.dll /noconfig
@@ -456,7 +481,7 @@ def _compile(
progress_message = "Compiling " + target_name + (" (internals ref-only dll)" if out_dll == None else ""),
inputs = depset(
direct = direct_inputs + framework_files + [compiler_wrapper, toolchain.runtime.files_to_run.executable],
- transitive = [refs, analyzer_assemblies, toolchain.runtime.default_runfiles.files, toolchain.csharp_compiler.default_runfiles.files, compile_data],
+ transitive = [refs, analyzer_assemblies, analyzer_assemblies_csharp, toolchain.runtime.default_runfiles.files, toolchain.csharp_compiler.default_runfiles.files, compile_data],
),
outputs = outputs,
executable = compiler_wrapper,
diff --git a/dotnet/private/rules/csharp/binary.bzl b/dotnet/private/rules/csharp/binary.bzl
index 034af198..4712126d 100644
--- a/dotnet/private/rules/csharp/binary.bzl
+++ b/dotnet/private/rules/csharp/binary.bzl
@@ -49,6 +49,9 @@ def _compile_action(ctx, tfm):
allow_unsafe_blocks = ctx.attr.allow_unsafe_blocks,
nullable = ctx.attr.nullable,
run_analyzers = ctx.attr.run_analyzers,
+ is_analyzer = False,
+ is_language_specific_analyzer = False,
+ analyzer_configs = ctx.files.analyzer_configs,
compiler_options = ctx.attr.compiler_options,
is_windows = ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]),
)
diff --git a/dotnet/private/rules/csharp/library.bzl b/dotnet/private/rules/csharp/library.bzl
index 8f47f4d0..0e6851ce 100644
--- a/dotnet/private/rules/csharp/library.bzl
+++ b/dotnet/private/rules/csharp/library.bzl
@@ -48,6 +48,9 @@ def _compile_action(ctx, tfm):
allow_unsafe_blocks = ctx.attr.allow_unsafe_blocks,
nullable = ctx.attr.nullable,
run_analyzers = ctx.attr.run_analyzers,
+ is_analyzer = ctx.attr.is_analyzer,
+ is_language_specific_analyzer = ctx.attr.is_language_specific_analyzer,
+ analyzer_configs = ctx.files.analyzer_configs,
compiler_options = ctx.attr.compiler_options,
is_windows = ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]),
)
diff --git a/dotnet/private/rules/csharp/test.bzl b/dotnet/private/rules/csharp/test.bzl
index e2ce0d94..4866e62d 100644
--- a/dotnet/private/rules/csharp/test.bzl
+++ b/dotnet/private/rules/csharp/test.bzl
@@ -51,6 +51,9 @@ def _compile_action(ctx, tfm):
allow_unsafe_blocks = ctx.attr.allow_unsafe_blocks,
nullable = ctx.attr.nullable,
run_analyzers = ctx.attr.run_analyzers,
+ is_analyzer = False,
+ is_language_specific_analyzer = False,
+ analyzer_configs = ctx.files.analyzer_configs,
compiler_options = ctx.attr.compiler_options,
is_windows = ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]),
)
diff --git a/dotnet/private/rules/fsharp/actions/fsharp_assembly.bzl b/dotnet/private/rules/fsharp/actions/fsharp_assembly.bzl
index 8e7c35f8..430b46e5 100644
--- a/dotnet/private/rules/fsharp/actions/fsharp_assembly.bzl
+++ b/dotnet/private/rules/fsharp/actions/fsharp_assembly.bzl
@@ -148,6 +148,9 @@ def AssemblyAction(
irefs,
prefs,
analyzers,
+ analyzers_csharp,
+ analyzers_fsharp,
+ analyzers_vb,
transitive_compile_data,
framework_files,
exports_files,
@@ -278,11 +281,17 @@ def AssemblyAction(
refs = [out_dll],
irefs = [out_iref] if out_iref else [out_ref] if out_ref else [out_dll],
analyzers = [],
+ analyzers_csharp = [],
+ analyzers_fsharp = [],
+ analyzers_vb = [],
internals_visible_to = internals_visible_to or [],
compile_data = compile_data,
exports = exports_files,
transitive_refs = prefs,
transitive_analyzers = analyzers,
+ transitive_analyzers_csharp = analyzers_csharp,
+ transitive_analyzers_fsharp = analyzers_fsharp,
+ transitive_analyzers_vb = analyzers_vb,
transitive_compile_data = transitive_compile_data,
), DotnetAssemblyRuntimeInfo(
name = assembly_name,
diff --git a/dotnet/private/rules/nuget/imports.bzl b/dotnet/private/rules/nuget/imports.bzl
index bae91c17..23876a4d 100644
--- a/dotnet/private/rules/nuget/imports.bzl
+++ b/dotnet/private/rules/nuget/imports.bzl
@@ -15,6 +15,9 @@ def _import_library(ctx):
_irefs,
prefs,
analyzers,
+ analyzers_csharp,
+ analyzers_fsharp,
+ analyzers_vb,
_compile_data,
_framework_files,
_exports,
@@ -40,11 +43,17 @@ def _import_library(ctx):
refs = ctx.files.refs,
irefs = ctx.files.refs,
analyzers = ctx.files.analyzers,
+ analyzers_csharp = ctx.files.analyzers_csharp,
+ analyzers_fsharp = ctx.files.analyzers_fsharp,
+ analyzers_vb = ctx.files.analyzers_vb,
compile_data = [],
exports = [],
transitive_compile_data = depset([]),
transitive_refs = prefs,
transitive_analyzers = analyzers,
+ transitive_analyzers_csharp = analyzers_csharp,
+ transitive_analyzers_fsharp = analyzers_fsharp,
+ transitive_analyzers_vb = analyzers_vb,
internals_visible_to = [],
)
@@ -97,6 +106,21 @@ import_library = rule(
allow_files = True, # [".dll"] currently does not work with empty file groups
allow_empty = True,
),
+ "analyzers_csharp": attr.label_list(
+ doc = "Static C# analyzer DLLs",
+ allow_files = True, # [".dll"] currently does not work with empty file groups
+ allow_empty = True,
+ ),
+ "analyzers_fsharp": attr.label_list(
+ doc = "Static F# analyzer DLLs",
+ allow_files = True, # [".dll"] currently does not work with empty file groups
+ allow_empty = True,
+ ),
+ "analyzers_vb": attr.label_list(
+ doc = "Static VB analyzer DLLs",
+ allow_files = True, # [".dll"] currently does not work with empty file groups
+ allow_empty = True,
+ ),
"refs": attr.label_list(
doc = "Compile time DLLs",
allow_files = True, # [".dll"] currently does not work with empty file groups
@@ -140,11 +164,17 @@ def _import_dll(ctx):
refs = [ctx.file.dll],
irefs = [],
analyzers = [],
+ analyzers_csharp = [],
+ analyzers_fsharp = [],
+ analyzers_vb = [],
compile_data = [],
exports = [],
transitive_compile_data = depset([]),
transitive_refs = depset([]),
transitive_analyzers = depset([]),
+ transitive_analyzers_csharp = depset([]),
+ transitive_analyzers_fsharp = depset([]),
+ transitive_analyzers_vb = depset([]),
internals_visible_to = [],
)
assembly_runtime_info = DotnetAssemblyRuntimeInfo(
diff --git a/dotnet/private/rules/nuget/nuget_archive.bzl b/dotnet/private/rules/nuget/nuget_archive.bzl
index bd25e52e..3ca8febc 100644
--- a/dotnet/private/rules/nuget/nuget_archive.bzl
+++ b/dotnet/private/rules/nuget/nuget_archive.bzl
@@ -192,7 +192,39 @@ def _process_analyzer_file(groups, file):
return
group = groups["analyzers"]
- group["dotnet"].append(file)
+
+ parts = file.split("/")
+
+ # The path format is analyzers/{framework_name}{version}/{supported_architecture}/{supported_language}/{analyzer_name}.dll
+ # Note: The only supported framework_name is `dotnet`
+
+ # Note: The `supported_architecture` part is not properly handled yet see: https://github.com/dotnet/sdk/issues/20355
+ # The tl;dr: Anaylzers can be built for different versions of roslyn and the `target_architecture` is strctured like this `roslyn` e.g. `roslyn3.8`.
+ # When a NuGet package contains folders under analyzers with the pattern, roslyn.,
+ # the folder with the highest version that is less than or equal to the current Microsoft.CodeAnalysis . version should be used.
+ # For now we add the latest version of the lowest version of of the package to stay the most compatible.
+
+ # The analyzers can be either language specific or not. If they are not language specific the path will be analyzers/dotnet/{analyzer_name}.dll
+ # if the analyzers are language specific the path will be analyzers/dotnet/{cs,vb,fs}/{analyzer_name}.dll
+ if len(parts) == 3:
+ group["dotnet"].append(file)
+ elif len(parts) == 4:
+ lang = parts[2]
+ group["dotnet/{}".format(lang)].append(file)
+ elif len(parts) == 5:
+ lang = parts[3]
+ supported_architecture = parts[2]
+
+ # Use this as a marker for the lowest version of the dll
+ if not group.get("dotnet/{}/lowest".format(lang)):
+ group["dotnet/{}/lowest".format(lang)] = file
+ group["dotnet/{}".format(lang)].append(file)
+ else:
+ # If the current version is lower than the version we have stored we replace it
+ current_lowest_version = group["dotnet/{}/lowest".format(lang)].split("/")[2]
+ if supported_architecture < current_lowest_version:
+ group["dotnet/{}/lowest".format(lang, supported_architecture)] = file
+ group["dotnet/{}".format(lang)].append(file)
return
@@ -338,9 +370,11 @@ def _nuget_archive_impl(ctx):
groups = {
# See https://learn.microsoft.com/en-us/nuget/guides/analyzers-conventions
# Example: analyzers/dotnet/cs/System.Runtime.CSharp.Analyzers.dll
- # NB: The analyzers supports is not fully implemented yet
"analyzers": {
"dotnet": [],
+ "dotnet/cs": [],
+ "dotnet/fs": [],
+ "dotnet/vb": [],
},
# See: https://devblogs.microsoft.com/nuget/nuget-contentfiles-demystified/
# NB: Only the any group is supported at the moment
@@ -453,6 +487,9 @@ load("@rules_dotnet//dotnet/private/rules/nuget:nuget_archive.bzl", "tfm_filegro
_create_framework_select("libs", libs) or "filegroup(name = \"libs\", srcs = [])",
_create_framework_select("refs", refs) or "filegroup(name = \"refs\", srcs = [])",
"filegroup(name = \"analyzers\", srcs = [%s])" % ",".join(["\n \"%s\"" % a for a in groups.get("analyzers")["dotnet"]]),
+ "filegroup(name = \"analyzers_csharp\", srcs = [%s])" % ",".join(["\n \"%s\"" % a for a in groups.get("analyzers")["dotnet/cs"]]),
+ "filegroup(name = \"analyzers_fsharp\", srcs = [%s])" % ",".join(["\n \"%s\"" % a for a in groups.get("analyzers")["dotnet/fs"]]),
+ "filegroup(name = \"analyzers_vb\", srcs = [%s])" % ",".join(["\n \"%s\"" % a for a in groups.get("analyzers")["dotnet/vb"]]),
"filegroup(name = \"data\", srcs = [])",
_create_rid_native_select("native", native) or "filegroup(name = \"native\", srcs = [])",
"filegroup(name = \"content_files\", srcs = [%s])" % ",".join(["\n \"%s\"" % a for a in groups.get("contentFiles")["any"]]),
diff --git a/dotnet/private/rules/nuget/template.BUILD b/dotnet/private/rules/nuget/template.BUILD
index 45afd442..62c50e34 100644
--- a/dotnet/private/rules/nuget/template.BUILD
+++ b/dotnet/private/rules/nuget/template.BUILD
@@ -5,6 +5,9 @@ package(default_visibility = ["//visibility:public"])
import_library(
name = "{VERSION}",
analyzers = ["@{PREFIX}.{ID_LOWER}.v{VERSION}//:analyzers"],
+ analyzers_csharp = ["@{PREFIX}.{ID_LOWER}.v{VERSION}//:analyzers_csharp"],
+ analyzers_fsharp = ["@{PREFIX}.{ID_LOWER}.v{VERSION}//:analyzers_fsharp"],
+ analyzers_vb = ["@{PREFIX}.{ID_LOWER}.v{VERSION}//:analyzers_vb"],
data = ["@{PREFIX}.{ID_LOWER}.v{VERSION}//:data"],
framework_list = {FRAMEWORK_LIST},
library_name = "{ID}",
diff --git a/dotnet/private/tests/nuget_structure/BUILD.bazel b/dotnet/private/tests/nuget_structure/BUILD.bazel
index 34421c03..2bfdf40b 100644
--- a/dotnet/private/tests/nuget_structure/BUILD.bazel
+++ b/dotnet/private/tests/nuget_structure/BUILD.bazel
@@ -1,4 +1,5 @@
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load(":analyzers.bzl", "analyzers_structure")
load(":resolution.bzl", "resolution_structure")
load(":runtimes.bzl", "runtimes_structure")
load(":typeproviders.bzl", "typeproviders_structure")
@@ -9,6 +10,8 @@ runtimes_structure()
resolution_structure()
+analyzers_structure()
+
bzl_library(
name = "common",
srcs = ["common.bzl"],
diff --git a/dotnet/private/tests/nuget_structure/analyzers.bzl b/dotnet/private/tests/nuget_structure/analyzers.bzl
new file mode 100644
index 00000000..e9b02d7d
--- /dev/null
+++ b/dotnet/private/tests/nuget_structure/analyzers.bzl
@@ -0,0 +1,42 @@
+"NuGet structure tests"
+
+load("//dotnet/private/tests/nuget_structure:common.bzl", "nuget_structure_test", "nuget_test_wrapper")
+
+# buildifier: disable=unnamed-macro
+def analyzers_structure():
+ "Tests for the analyzers folder"
+ nuget_test_wrapper(
+ name = "system.text.json",
+ target_framework = "net8.0",
+ runtime_identifier = "linux-x64",
+ package = "@paket.rules_dotnet_dev_nuget_packages//system.text.json",
+ )
+
+ nuget_test_wrapper(
+ name = "microsoft.codeanalysis.analyzers",
+ target_framework = "net8.0",
+ runtime_identifier = "linux-x64",
+ package = "@paket.rules_dotnet_dev_nuget_packages//microsoft.codeanalysis.analyzers",
+ )
+
+ nuget_structure_test(
+ name = "nuget_structure_should_parse_version_specific_analyzers",
+ target_under_test = ":system.text.json",
+ expected_libs = ["lib/net7.0/System.Text.Json.dll"],
+ expected_refs = ["lib/net7.0/System.Text.Json.dll"],
+ expected_analyzers = [],
+ expected_analyzers_csharp = ["analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll"],
+ expected_analyzers_fsharp = [],
+ expected_analyzers_vb = [],
+ )
+
+ nuget_structure_test(
+ name = "nuget_structure_should_parse_non_version_specific_analyzers",
+ target_under_test = ":microsoft.codeanalysis.analyzers",
+ expected_libs = [],
+ expected_refs = [],
+ expected_analyzers = [],
+ expected_analyzers_csharp = ["analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll", "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll"],
+ expected_analyzers_fsharp = [],
+ expected_analyzers_vb = ["analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll", "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll"],
+ )
diff --git a/dotnet/private/tests/nuget_structure/common.bzl b/dotnet/private/tests/nuget_structure/common.bzl
index 0fda4b7b..f37b04a3 100644
--- a/dotnet/private/tests/nuget_structure/common.bzl
+++ b/dotnet/private/tests/nuget_structure/common.bzl
@@ -49,6 +49,27 @@ def _nuget_structure_test_impl(ctx):
"\nExpected analyzers:\n{}\nActual analyzers:\n{}".format(ctx.attr.expected_analyzers, analyzers_files),
)
+ analyzers_csharp_files = _get_nuget_relative_paths(compile_provider.analyzers_csharp)
+ asserts.true(
+ env,
+ sorted(ctx.attr.expected_analyzers_csharp) == sorted(analyzers_csharp_files),
+ "\nExpected analyzers_csharp:\n{}\nActual analyzers_csharp:\n{}".format(ctx.attr.expected_analyzers_csharp, analyzers_csharp_files),
+ )
+
+ analyzers_fsharp_files = _get_nuget_relative_paths(compile_provider.analyzers_fsharp)
+ asserts.true(
+ env,
+ sorted(ctx.attr.expected_analyzers_fsharp) == sorted(analyzers_fsharp_files),
+ "\nExpected analyzers_fsharp:\n{}\nActual analyzers_fsharp:\n{}".format(ctx.attr.expected_analyzers_fsharp, analyzers_fsharp_files),
+ )
+
+ analyzers_vb_files = _get_nuget_relative_paths(compile_provider.analyzers_vb)
+ asserts.true(
+ env,
+ sorted(ctx.attr.expected_analyzers_vb) == sorted(analyzers_vb_files),
+ "\nExpected analyzers_vb:\n{}\nActual analyzers_vb:\n{}".format(ctx.attr.expected_analyzers_vb, analyzers_vb_files),
+ )
+
data_files = _get_nuget_relative_paths(runtime_provider.data)
asserts.true(
env,
@@ -71,6 +92,9 @@ nuget_structure_test = analysistest.make(
"expected_libs": attr.string_list(default = []),
"expected_refs": attr.string_list(default = []),
"expected_analyzers": attr.string_list(default = []),
+ "expected_analyzers_csharp": attr.string_list(default = []),
+ "expected_analyzers_fsharp": attr.string_list(default = []),
+ "expected_analyzers_vb": attr.string_list(default = []),
"expected_data": attr.string_list(default = []),
"expected_native": attr.string_list(default = []),
},
diff --git a/dotnet/private/tests/source_generators/generator/.analyzerconfig b/dotnet/private/tests/source_generators/generator/.analyzerconfig
new file mode 100644
index 00000000..e97c48b0
--- /dev/null
+++ b/dotnet/private/tests/source_generators/generator/.analyzerconfig
@@ -0,0 +1,2 @@
+is_global = true
+build_property.EnforceExtendedAnalyzerRules = true
diff --git a/dotnet/private/tests/source_generators/generator/BUILD.bazel b/dotnet/private/tests/source_generators/generator/BUILD.bazel
new file mode 100644
index 00000000..58a1b72a
--- /dev/null
+++ b/dotnet/private/tests/source_generators/generator/BUILD.bazel
@@ -0,0 +1,23 @@
+load("@rules_dotnet//dotnet:defs.bzl", "csharp_library")
+
+csharp_library(
+ name = "generator",
+ srcs = [
+ "Generator.cs",
+ ],
+ analyzer_configs = [
+ ".analyzerconfig",
+ ],
+ is_analyzer = True,
+ is_language_specific_analyzer = True,
+ target_frameworks = ["netstandard2.0"],
+ visibility = ["//dotnet/private/tests/source_generators:__subpackages__"],
+ # Treat this warning as an error so that we know that the analyzer config is working
+ # The error is: A project containing analyzers or source generators should specify the property 'true'
+ warnings_as_errors = ["RS1036"],
+ deps = [
+ "@paket.rules_dotnet_dev_nuget_packages//microsoft.codeanalysis.analyzers",
+ "@paket.rules_dotnet_dev_nuget_packages//microsoft.codeanalysis.common",
+ "@paket.rules_dotnet_dev_nuget_packages//microsoft.codeanalysis.csharp",
+ ],
+)
diff --git a/dotnet/private/tests/source_generators/generator/Generator.cs b/dotnet/private/tests/source_generators/generator/Generator.cs
new file mode 100644
index 00000000..fba0786f
--- /dev/null
+++ b/dotnet/private/tests/source_generators/generator/Generator.cs
@@ -0,0 +1,30 @@
+using Microsoft.CodeAnalysis;
+
+namespace SourceGenerator
+{
+ [Generator]
+ public class HelloSourceGenerator : ISourceGenerator
+ {
+ public void Execute(GeneratorExecutionContext context)
+ {
+ string source = $@"//
+using System;
+
+namespace SourceGeneratorTest
+{{
+ public static partial class TestGenerator
+ {{
+ public static partial string HelloFrom(string name) =>
+ $""Generator says: Hi from {{name}}"";
+ }}
+}}
+";
+ context.AddSource($"TestGenerator.g.cs", source);
+ }
+
+ public void Initialize(GeneratorInitializationContext context)
+ {
+ // No initialization required for this one
+ }
+ }
+}
diff --git a/dotnet/private/tests/source_generators/generator_usage/BUILD.bazel b/dotnet/private/tests/source_generators/generator_usage/BUILD.bazel
new file mode 100644
index 00000000..02c142ad
--- /dev/null
+++ b/dotnet/private/tests/source_generators/generator_usage/BUILD.bazel
@@ -0,0 +1,11 @@
+load("@rules_dotnet//dotnet:defs.bzl", "csharp_nunit_test")
+
+csharp_nunit_test(
+ name = "generator_usage",
+ srcs = ["Test.cs"],
+ target_frameworks = ["net8.0"],
+ deps = [
+ "//dotnet/private/tests/source_generators/generator",
+ "@paket.rules_dotnet_dev_nuget_packages//system.text.json",
+ ],
+)
diff --git a/dotnet/private/tests/source_generators/generator_usage/Test.cs b/dotnet/private/tests/source_generators/generator_usage/Test.cs
new file mode 100644
index 00000000..dda6839c
--- /dev/null
+++ b/dotnet/private/tests/source_generators/generator_usage/Test.cs
@@ -0,0 +1,23 @@
+using NUnit.Framework;
+using System.Linq;
+
+namespace SourceGeneratorTest
+{
+
+ public static partial class TestGenerator
+ {
+ public static partial string HelloFrom(string name);
+ }
+
+ [TestFixture]
+ public sealed class Test
+ {
+ [Test]
+ public void LibCompilesAndValueIsSet()
+ {
+ Assert.AreEqual("Generator says: Hi from source generator", TestGenerator.HelloFrom("source generator"));
+ }
+ }
+}
+
+
diff --git a/examples/paket.dependencies b/examples/paket.dependencies
index 67c7141f..2273f0d2 100644
--- a/examples/paket.dependencies
+++ b/examples/paket.dependencies
@@ -6,12 +6,7 @@ group example_deps
nuget Expecto 9.0.4
nuget FSharp.Core 6.0.3
nuget FSharp.Data 5.0.2
- nuget NETStandard.Library 2.0.3
- nuget Microsoft.NETCore.App.Ref 6.0.8
- nuget Microsoft.NETCore.App.Runtime.win-x64 6.0.8
- nuget Microsoft.NETCore.App.Runtime.linux-x64 6.0.8
- nuget Microsoft.NETCore.App.Runtime.osx-x64 6.0.8
- nuget Microsoft.AspNetCore.App.Ref 6.0.8
- nuget Microsoft.AspNetCore.App.Runtime.win-x64 6.0.8
- nuget Microsoft.AspNetCore.App.Runtime.linux-x64 6.0.8
- nuget Microsoft.AspNetCore.App.Runtime.osx-x64 6.0.8
+ nuget Microsoft.CodeAnalysis.Common 4.9.2
+ nuget Microsoft.CodeAnalysis.Analyzers 3.3.4
+ nuget Microsoft.CodeAnalysis.CSharp 4.9.2
+
diff --git a/examples/paket.example_deps.bzl b/examples/paket.example_deps.bzl
index f70f98db..7f19435d 100644
--- a/examples/paket.example_deps.bzl
+++ b/examples/paket.example_deps.bzl
@@ -10,16 +10,17 @@ def example_deps():
{"name": "Expecto", "id": "Expecto", "version": "9.0.4", "sha512": "sha512-k0TT6pNIyzDaJD0ZxHDhNU0UmmWZlum2XFfHTGrkApQ+JUdjcoBqKOACXrSkfiLVYsD8Ww768eeAiKPP3QYetw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["FSharp.Core", "Mono.Cecil"], "net462": ["FSharp.Core", "Mono.Cecil"], "net47": ["FSharp.Core", "Mono.Cecil"], "net471": ["FSharp.Core", "Mono.Cecil"], "net472": ["FSharp.Core", "Mono.Cecil"], "net48": ["FSharp.Core", "Mono.Cecil"], "net5.0": ["FSharp.Core", "Mono.Cecil"], "net6.0": ["FSharp.Core", "Mono.Cecil"], "net7.0": ["FSharp.Core", "Mono.Cecil"], "net8.0": ["FSharp.Core", "Mono.Cecil"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["FSharp.Core", "Mono.Cecil"], "netcoreapp2.1": ["FSharp.Core", "Mono.Cecil"], "netcoreapp2.2": ["FSharp.Core", "Mono.Cecil"], "netcoreapp3.0": ["FSharp.Core", "Mono.Cecil"], "netcoreapp3.1": ["FSharp.Core", "Mono.Cecil"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["FSharp.Core", "Mono.Cecil"], "netstandard2.1": ["FSharp.Core", "Mono.Cecil"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "FSharp.Core", "id": "FSharp.Core", "version": "6.0.3", "sha512": "sha512-aDyKHiVFMwXWJrfW90iAeKyvw/lN+x98DPfx4oXke9Qnl4dz1sOi8KT2iczGeunqyWXh7nm+XUJ18i/0P3pZYw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "FSharp.Data", "id": "FSharp.Data", "version": "5.0.2", "sha512": "sha512-BlDokqEWMysUMedhZzaREUPrhAbj8VRUEXjUrd85fzH63XaxppqjEYtpjQLnQcwkyWI71bzr3cfzYgaAANQLAQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["FSharp.Core"], "net462": ["FSharp.Core"], "net47": ["FSharp.Core"], "net471": ["FSharp.Core"], "net472": ["FSharp.Core"], "net48": ["FSharp.Core"], "net5.0": ["FSharp.Core"], "net6.0": ["FSharp.Core"], "net7.0": ["FSharp.Core"], "net8.0": ["FSharp.Core"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["FSharp.Core"], "netcoreapp2.1": ["FSharp.Core"], "netcoreapp2.2": ["FSharp.Core"], "netcoreapp3.0": ["FSharp.Core"], "netcoreapp3.1": ["FSharp.Core"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["FSharp.Core"], "netstandard2.1": ["FSharp.Core"]}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.AspNetCore.App.Ref", "id": "Microsoft.AspNetCore.App.Ref", "version": "6.0.8", "sha512": "sha512-yLy7tFshfGLJRCFdlmOv8YOlJ4J5IfE88bnqiulxsJzhgEQNfbPQLpxbvmjCO3Zg0tdBLAS4B8QYWoojkOkWLg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": ["Microsoft.Extensions.Caching.Abstractions|6.0.0", "Microsoft.Extensions.Caching.Memory|6.0.0", "Microsoft.Extensions.Configuration.Abstractions|6.0.0", "Microsoft.Extensions.Configuration.Binder|6.0.0", "Microsoft.Extensions.Configuration.CommandLine|6.0.0", "Microsoft.Extensions.Configuration|6.0.0", "Microsoft.Extensions.Configuration.EnvironmentVariables|6.0.0", "Microsoft.Extensions.Configuration.FileExtensions|6.0.0", "Microsoft.Extensions.Configuration.Ini|6.0.0", "Microsoft.Extensions.Configuration.Json|6.0.0", "Microsoft.Extensions.Configuration.UserSecrets|6.0.0", "Microsoft.Extensions.Configuration.Xml|6.0.0", "Microsoft.Extensions.DependencyInjection.Abstractions|6.0.0", "Microsoft.Extensions.DependencyInjection|6.0.0", "Microsoft.Extensions.FileProviders.Abstractions|6.0.0", "Microsoft.Extensions.FileProviders.Composite|6.0.0", "Microsoft.Extensions.FileProviders.Physical|6.0.0", "Microsoft.Extensions.FileSystemGlobbing|6.0.0", "Microsoft.Extensions.Hosting.Abstractions|6.0.0", "Microsoft.Extensions.Hosting|6.0.0", "Microsoft.Extensions.Http|6.0.0", "Microsoft.Extensions.Logging.Abstractions|6.0.0", "Microsoft.Extensions.Logging.Configuration|6.0.0", "Microsoft.Extensions.Logging.Console|6.0.0", "Microsoft.Extensions.Logging.Debug|6.0.0", "Microsoft.Extensions.Logging|6.0.0", "Microsoft.Extensions.Logging.EventLog|6.0.0", "Microsoft.Extensions.Logging.EventSource|6.0.0", "Microsoft.Extensions.Logging.TraceSource|6.0.0", "Microsoft.Extensions.Options.ConfigurationExtensions|6.0.0", "Microsoft.Extensions.Options.DataAnnotations|6.0.0", "Microsoft.Extensions.Options|6.0.0", "Microsoft.Extensions.Primitives|6.0.0", "System.Diagnostics.EventLog|6.0.0", "System.IO.Pipelines|6.0.0", "System.Security.Cryptography.Xml|6.0.0", "Microsoft.AspNetCore.Antiforgery|6.0.0", "Microsoft.AspNetCore.Authentication.Abstractions|6.0.0", "Microsoft.AspNetCore.Authentication.Cookies|6.0.0", "Microsoft.AspNetCore.Authentication.Core|6.0.0", "Microsoft.AspNetCore.Authentication|6.0.0", "Microsoft.AspNetCore.Authentication.OAuth|6.0.0", "Microsoft.AspNetCore.Authorization|6.0.0", "Microsoft.AspNetCore.Authorization.Policy|6.0.0", "Microsoft.AspNetCore.Components.Authorization|6.0.0", "Microsoft.AspNetCore.Components|6.0.0", "Microsoft.AspNetCore.Components.Forms|6.0.0", "Microsoft.AspNetCore.Components.Server|6.0.0", "Microsoft.AspNetCore.Components.Web|6.0.0", "Microsoft.AspNetCore.Connections.Abstractions|6.0.0", "Microsoft.AspNetCore.CookiePolicy|6.0.0", "Microsoft.AspNetCore.Cors|6.0.0", "Microsoft.AspNetCore.Cryptography.Internal|6.0.0", "Microsoft.AspNetCore.Cryptography.KeyDerivation|6.0.0", "Microsoft.AspNetCore.DataProtection.Abstractions|6.0.0", "Microsoft.AspNetCore.DataProtection|6.0.0", "Microsoft.AspNetCore.DataProtection.Extensions|6.0.0", "Microsoft.AspNetCore.Diagnostics.Abstractions|6.0.0", "Microsoft.AspNetCore.Diagnostics|6.0.0", "Microsoft.AspNetCore.Diagnostics.HealthChecks|6.0.0", "Microsoft.AspNetCore|6.0.0", "Microsoft.AspNetCore.HostFiltering|6.0.0", "Microsoft.AspNetCore.Hosting.Abstractions|6.0.0", "Microsoft.AspNetCore.Hosting|6.0.0", "Microsoft.AspNetCore.Hosting.Server.Abstractions|6.0.0", "Microsoft.AspNetCore.Html.Abstractions|6.0.0", "Microsoft.AspNetCore.Http.Abstractions|6.0.0", "Microsoft.AspNetCore.Http.Connections.Common|6.0.0", "Microsoft.AspNetCore.Http.Connections|6.0.0", "Microsoft.AspNetCore.Http|6.0.0", "Microsoft.AspNetCore.Http.Extensions|6.0.0", "Microsoft.AspNetCore.Http.Features|6.0.0", "Microsoft.AspNetCore.Http.Results|6.0.0", "Microsoft.AspNetCore.HttpLogging|6.0.0", "Microsoft.AspNetCore.HttpOverrides|6.0.0", "Microsoft.AspNetCore.HttpsPolicy|6.0.0", "Microsoft.AspNetCore.Identity|6.0.0", "Microsoft.AspNetCore.Localization|6.0.0", "Microsoft.AspNetCore.Localization.Routing|6.0.0", "Microsoft.AspNetCore.Metadata|6.0.0", "Microsoft.AspNetCore.Mvc.Abstractions|6.0.0", "Microsoft.AspNetCore.Mvc.ApiExplorer|6.0.0", "Microsoft.AspNetCore.Mvc.Core|6.0.0", "Microsoft.AspNetCore.Mvc.Cors|6.0.0", "Microsoft.AspNetCore.Mvc.DataAnnotations|6.0.0", "Microsoft.AspNetCore.Mvc|6.0.0", "Microsoft.AspNetCore.Mvc.Formatters.Json|6.0.0", "Microsoft.AspNetCore.Mvc.Formatters.Xml|6.0.0", "Microsoft.AspNetCore.Mvc.Localization|6.0.0", "Microsoft.AspNetCore.Mvc.Razor|6.0.0", "Microsoft.AspNetCore.Mvc.RazorPages|6.0.0", "Microsoft.AspNetCore.Mvc.TagHelpers|6.0.0", "Microsoft.AspNetCore.Mvc.ViewFeatures|6.0.0", "Microsoft.AspNetCore.Razor|6.0.0", "Microsoft.AspNetCore.Razor.Runtime|6.0.0", "Microsoft.AspNetCore.ResponseCaching.Abstractions|6.0.0", "Microsoft.AspNetCore.ResponseCaching|6.0.0", "Microsoft.AspNetCore.ResponseCompression|6.0.0", "Microsoft.AspNetCore.Rewrite|6.0.0", "Microsoft.AspNetCore.Routing.Abstractions|6.0.0", "Microsoft.AspNetCore.Routing|6.0.0", "Microsoft.AspNetCore.Server.HttpSys|6.0.0", "Microsoft.AspNetCore.Server.IIS|6.0.0", "Microsoft.AspNetCore.Server.IISIntegration|6.0.0", "Microsoft.AspNetCore.Server.Kestrel.Core|6.0.0", "Microsoft.AspNetCore.Server.Kestrel|6.0.0", "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic|6.0.0", "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets|6.0.0", "Microsoft.AspNetCore.Session|6.0.0", "Microsoft.AspNetCore.SignalR.Common|6.0.0", "Microsoft.AspNetCore.SignalR.Core|6.0.0", "Microsoft.AspNetCore.SignalR|6.0.0", "Microsoft.AspNetCore.SignalR.Protocols.Json|6.0.0", "Microsoft.AspNetCore.StaticFiles|6.0.0", "Microsoft.AspNetCore.WebSockets|6.0.0", "Microsoft.AspNetCore.WebUtilities|6.0.0", "Microsoft.Extensions.Configuration.KeyPerFile|6.0.0", "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions|6.0.0", "Microsoft.Extensions.Diagnostics.HealthChecks|6.0.0", "Microsoft.Extensions.Features|6.0.0", "Microsoft.Extensions.FileProviders.Embedded|6.0.0", "Microsoft.Extensions.Identity.Core|6.0.0", "Microsoft.Extensions.Identity.Stores|6.0.0", "Microsoft.Extensions.Localization.Abstractions|6.0.0", "Microsoft.Extensions.Localization|6.0.0", "Microsoft.Extensions.ObjectPool|6.0.0", "Microsoft.Extensions.WebEncoders|6.0.0", "Microsoft.JSInterop|6.0.0", "Microsoft.Net.Http.Headers|6.0.0"], "framework_list": ["Microsoft.AspNetCore.Antiforgery|6.0.0.0", "Microsoft.AspNetCore.Authentication.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Authentication.Cookies|6.0.0.0", "Microsoft.AspNetCore.Authentication.Core|6.0.0.0", "Microsoft.AspNetCore.Authentication.OAuth|6.0.0.0", "Microsoft.AspNetCore.Authentication|6.0.0.0", "Microsoft.AspNetCore.Authorization.Policy|6.0.0.0", "Microsoft.AspNetCore.Authorization|6.0.0.0", "Microsoft.AspNetCore.Components.Authorization|6.0.0.0", "Microsoft.AspNetCore.Components.Forms|6.0.0.0", "Microsoft.AspNetCore.Components.Server|6.0.0.0", "Microsoft.AspNetCore.Components.Web|6.0.0.0", "Microsoft.AspNetCore.Components|6.0.0.0", "Microsoft.AspNetCore.Connections.Abstractions|6.0.0.0", "Microsoft.AspNetCore.CookiePolicy|6.0.0.0", "Microsoft.AspNetCore.Cors|6.0.0.0", "Microsoft.AspNetCore.Cryptography.Internal|6.0.0.0", "Microsoft.AspNetCore.Cryptography.KeyDerivation|6.0.0.0", "Microsoft.AspNetCore.DataProtection.Abstractions|6.0.0.0", "Microsoft.AspNetCore.DataProtection.Extensions|6.0.0.0", "Microsoft.AspNetCore.DataProtection|6.0.0.0", "Microsoft.AspNetCore.Diagnostics.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Diagnostics.HealthChecks|6.0.0.0", "Microsoft.AspNetCore.Diagnostics|6.0.0.0", "Microsoft.AspNetCore.HostFiltering|6.0.0.0", "Microsoft.AspNetCore.Hosting.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Hosting.Server.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Hosting|6.0.0.0", "Microsoft.AspNetCore.Html.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Http.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Http.Connections.Common|6.0.0.0", "Microsoft.AspNetCore.Http.Connections|6.0.0.0", "Microsoft.AspNetCore.Http.Extensions|6.0.0.0", "Microsoft.AspNetCore.Http.Features|6.0.0.0", "Microsoft.AspNetCore.Http.Results|6.0.0.0", "Microsoft.AspNetCore.Http|6.0.0.0", "Microsoft.AspNetCore.HttpLogging|6.0.0.0", "Microsoft.AspNetCore.HttpOverrides|6.0.0.0", "Microsoft.AspNetCore.HttpsPolicy|6.0.0.0", "Microsoft.AspNetCore.Identity|6.0.0.0", "Microsoft.AspNetCore.Localization.Routing|6.0.0.0", "Microsoft.AspNetCore.Localization|6.0.0.0", "Microsoft.AspNetCore.Metadata|6.0.0.0", "Microsoft.AspNetCore.Mvc.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Mvc.ApiExplorer|6.0.0.0", "Microsoft.AspNetCore.Mvc.Core|6.0.0.0", "Microsoft.AspNetCore.Mvc.Cors|6.0.0.0", "Microsoft.AspNetCore.Mvc.DataAnnotations|6.0.0.0", "Microsoft.AspNetCore.Mvc.Formatters.Json|6.0.0.0", "Microsoft.AspNetCore.Mvc.Formatters.Xml|6.0.0.0", "Microsoft.AspNetCore.Mvc.Localization|6.0.0.0", "Microsoft.AspNetCore.Mvc.Razor|6.0.0.0", "Microsoft.AspNetCore.Mvc.RazorPages|6.0.0.0", "Microsoft.AspNetCore.Mvc.TagHelpers|6.0.0.0", "Microsoft.AspNetCore.Mvc.ViewFeatures|6.0.0.0", "Microsoft.AspNetCore.Mvc|6.0.0.0", "Microsoft.AspNetCore.Razor.Runtime|6.0.0.0", "Microsoft.AspNetCore.Razor|6.0.0.0", "Microsoft.AspNetCore.ResponseCaching.Abstractions|6.0.0.0", "Microsoft.AspNetCore.ResponseCaching|6.0.0.0", "Microsoft.AspNetCore.ResponseCompression|6.0.0.0", "Microsoft.AspNetCore.Rewrite|6.0.0.0", "Microsoft.AspNetCore.Routing.Abstractions|6.0.0.0", "Microsoft.AspNetCore.Routing|6.0.0.0", "Microsoft.AspNetCore.Server.HttpSys|6.0.0.0", "Microsoft.AspNetCore.Server.IIS|6.0.0.0", "Microsoft.AspNetCore.Server.IISIntegration|6.0.0.0", "Microsoft.AspNetCore.Server.Kestrel.Core|6.0.0.0", "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic|6.0.0.0", "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets|6.0.0.0", "Microsoft.AspNetCore.Server.Kestrel|6.0.0.0", "Microsoft.AspNetCore.Session|6.0.0.0", "Microsoft.AspNetCore.SignalR.Common|6.0.0.0", "Microsoft.AspNetCore.SignalR.Core|6.0.0.0", "Microsoft.AspNetCore.SignalR.Protocols.Json|6.0.0.0", "Microsoft.AspNetCore.SignalR|6.0.0.0", "Microsoft.AspNetCore.StaticFiles|6.0.0.0", "Microsoft.AspNetCore.WebSockets|6.0.0.0", "Microsoft.AspNetCore.WebUtilities|6.0.0.0", "Microsoft.AspNetCore|6.0.0.0", "Microsoft.Extensions.Caching.Abstractions|6.0.0.0", "Microsoft.Extensions.Caching.Memory|6.0.0.0", "Microsoft.Extensions.Configuration.Abstractions|6.0.0.0", "Microsoft.Extensions.Configuration.Binder|6.0.0.0", "Microsoft.Extensions.Configuration.CommandLine|6.0.0.0", "Microsoft.Extensions.Configuration.EnvironmentVariables|6.0.0.0", "Microsoft.Extensions.Configuration.FileExtensions|6.0.0.0", "Microsoft.Extensions.Configuration.Ini|6.0.0.0", "Microsoft.Extensions.Configuration.Json|6.0.0.0", "Microsoft.Extensions.Configuration.KeyPerFile|6.0.0.0", "Microsoft.Extensions.Configuration.UserSecrets|6.0.0.0", "Microsoft.Extensions.Configuration.Xml|6.0.0.0", "Microsoft.Extensions.Configuration|6.0.0.0", "Microsoft.Extensions.DependencyInjection.Abstractions|6.0.0.0", "Microsoft.Extensions.DependencyInjection|6.0.0.0", "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions|6.0.0.0", "Microsoft.Extensions.Diagnostics.HealthChecks|6.0.0.0", "Microsoft.Extensions.Features|6.0.0.0", "Microsoft.Extensions.FileProviders.Abstractions|6.0.0.0", "Microsoft.Extensions.FileProviders.Composite|6.0.0.0", "Microsoft.Extensions.FileProviders.Embedded|6.0.0.0", "Microsoft.Extensions.FileProviders.Physical|6.0.0.0", "Microsoft.Extensions.FileSystemGlobbing|6.0.0.0", "Microsoft.Extensions.Hosting.Abstractions|6.0.0.0", "Microsoft.Extensions.Hosting|6.0.0.0", "Microsoft.Extensions.Http|6.0.0.0", "Microsoft.Extensions.Identity.Core|6.0.0.0", "Microsoft.Extensions.Identity.Stores|6.0.0.0", "Microsoft.Extensions.Localization.Abstractions|6.0.0.0", "Microsoft.Extensions.Localization|6.0.0.0", "Microsoft.Extensions.Logging.Abstractions|6.0.0.0", "Microsoft.Extensions.Logging.Configuration|6.0.0.0", "Microsoft.Extensions.Logging.Console|6.0.0.0", "Microsoft.Extensions.Logging.Debug|6.0.0.0", "Microsoft.Extensions.Logging.EventLog|6.0.0.0", "Microsoft.Extensions.Logging.EventSource|6.0.0.0", "Microsoft.Extensions.Logging.TraceSource|6.0.0.0", "Microsoft.Extensions.Logging|6.0.0.0", "Microsoft.Extensions.ObjectPool|6.0.0.0", "Microsoft.Extensions.Options.ConfigurationExtensions|6.0.0.0", "Microsoft.Extensions.Options.DataAnnotations|6.0.0.0", "Microsoft.Extensions.Options|6.0.0.0", "Microsoft.Extensions.Primitives|6.0.0.0", "Microsoft.Extensions.WebEncoders|6.0.0.0", "Microsoft.JSInterop|6.0.0.0", "Microsoft.Net.Http.Headers|6.0.0.0", "System.Diagnostics.EventLog|6.0.0.0", "System.IO.Pipelines|6.0.0.0", "System.Security.Cryptography.Xml|6.0.0.0"]},
- {"name": "Microsoft.AspNetCore.App.Runtime.linux-x64", "id": "Microsoft.AspNetCore.App.Runtime.linux-x64", "version": "6.0.8", "sha512": "sha512-3Hig5sP4ALm0aaB3cYCdhmW0a6SgT23ReaP5oYOZ9p1fQoQy4fHeLlU2LXQTXgJDopd3sQZCaWg639rJCYppiQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.AspNetCore.App.Runtime.osx-x64", "id": "Microsoft.AspNetCore.App.Runtime.osx-x64", "version": "6.0.8", "sha512": "sha512-AQHu61cati6QzemklVlevQgChYJ3+msUUnXVDh51cEHhFEO/HBLKFWTiS1A49jnLBFpNUY98jPJMauyKIrh4jQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.AspNetCore.App.Runtime.win-x64", "id": "Microsoft.AspNetCore.App.Runtime.win-x64", "version": "6.0.8", "sha512": "sha512-fSuPkgA89T57pmGx2g6pcMSizT49ABL43d6s8Vp0PCzPjrme7UBISHATM9zP45Sq6GUhTZe2892wj7NmPa0wBA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.NETCore.App.Ref", "id": "Microsoft.NETCore.App.Ref", "version": "6.0.8", "sha512": "sha512-TcZWOpmw+hWGQANrK0YWS3oHvtxdkn5A5JB284IdgXNvQ4rGABOPK8u52qB2bATbpSy3DbiMdobRxgAB2/mcJQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": ["Microsoft.CSharp|4.4.0", "Microsoft.Win32.Primitives|4.3.0", "Microsoft.Win32.Registry|4.4.0", "runtime.debian.8-x64.runtime.native.System|4.3.0", "runtime.debian.8-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.debian.8-x64.runtime.native.System.Net.Http|4.3.0", "runtime.debian.8-x64.runtime.native.System.Net.Security|4.3.0", "runtime.debian.8-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.fedora.23-x64.runtime.native.System|4.3.0", "runtime.fedora.23-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.fedora.23-x64.runtime.native.System.Net.Http|4.3.0", "runtime.fedora.23-x64.runtime.native.System.Net.Security|4.3.0", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.fedora.24-x64.runtime.native.System|4.3.0", "runtime.fedora.24-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.fedora.24-x64.runtime.native.System.Net.Http|4.3.0", "runtime.fedora.24-x64.runtime.native.System.Net.Security|4.3.0", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.opensuse.13.2-x64.runtime.native.System|4.3.0", "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http|4.3.0", "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security|4.3.0", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.opensuse.42.1-x64.runtime.native.System|4.3.0", "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http|4.3.0", "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security|4.3.0", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.osx.10.10-x64.runtime.native.System|4.3.0", "runtime.osx.10.10-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.osx.10.10-x64.runtime.native.System.Net.Http|4.3.0", "runtime.osx.10.10-x64.runtime.native.System.Net.Security|4.3.0", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple|4.3.0", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.rhel.7-x64.runtime.native.System|4.3.0", "runtime.rhel.7-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.rhel.7-x64.runtime.native.System.Net.Http|4.3.0", "runtime.rhel.7-x64.runtime.native.System.Net.Security|4.3.0", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.ubuntu.14.04-x64.runtime.native.System|4.3.0", "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http|4.3.0", "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security|4.3.0", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.ubuntu.16.04-x64.runtime.native.System|4.3.0", "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http|4.3.0", "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security|4.3.0", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "runtime.ubuntu.16.10-x64.runtime.native.System|4.3.0", "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression|4.3.0", "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http|4.3.0", "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security|4.3.0", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography|4.3.0", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0", "System.AppContext|4.3.0", "System.Buffers|4.4.0", "System.Collections|4.3.0", "System.Collections.Concurrent|4.3.0", "System.Collections.Immutable|1.4.0", "System.Collections.NonGeneric|4.3.0", "System.Collections.Specialized|4.3.0", "System.ComponentModel|4.3.0", "System.ComponentModel.EventBasedAsync|4.3.0", "System.ComponentModel.Primitives|4.3.0", "System.ComponentModel.TypeConverter|4.3.0", "System.Console|4.3.0", "System.Data.Common|4.3.0", "System.Diagnostics.Contracts|4.3.0", "System.Diagnostics.Debug|4.3.0", "System.Diagnostics.DiagnosticSource|4.4.0", "System.Diagnostics.FileVersionInfo|4.3.0", "System.Diagnostics.Process|4.3.0", "System.Diagnostics.StackTrace|4.3.0", "System.Diagnostics.TextWriterTraceListener|4.3.0", "System.Diagnostics.Tools|4.3.0", "System.Diagnostics.TraceSource|4.3.0", "System.Diagnostics.Tracing|4.3.0", "System.Dynamic.Runtime|4.3.0", "System.Globalization|4.3.0", "System.Globalization.Calendars|4.3.0", "System.Globalization.Extensions|4.3.0", "System.IO|4.3.0", "System.IO.Compression|4.3.0", "System.IO.Compression.ZipFile|4.3.0", "System.IO.FileSystem|4.3.0", "System.IO.FileSystem.AccessControl|4.4.0", "System.IO.FileSystem.DriveInfo|4.3.0", "System.IO.FileSystem.Primitives|4.3.0", "System.IO.FileSystem.Watcher|4.3.0", "System.IO.IsolatedStorage|4.3.0", "System.IO.MemoryMappedFiles|4.3.0", "System.IO.Pipes|4.3.0", "System.IO.UnmanagedMemoryStream|4.3.0", "System.Linq|4.3.0", "System.Linq.Expressions|4.3.0", "System.Linq.Queryable|4.3.0", "System.Net.Http|4.3.0", "System.Net.NameResolution|4.3.0", "System.Net.Primitives|4.3.0", "System.Net.Requests|4.3.0", "System.Net.Security|4.3.0", "System.Net.Sockets|4.3.0", "System.Net.WebHeaderCollection|4.3.0", "System.ObjectModel|4.3.0", "System.Private.DataContractSerialization|4.3.0", "System.Reflection|4.3.0", "System.Reflection.Emit|4.3.0", "System.Reflection.Emit.ILGeneration|4.3.0", "System.Reflection.Emit.Lightweight|4.3.0", "System.Reflection.Extensions|4.3.0", "System.Reflection.Metadata|1.5.0", "System.Reflection.Primitives|4.3.0", "System.Reflection.TypeExtensions|4.3.0", "System.Resources.ResourceManager|4.3.0", "System.Runtime|4.3.0", "System.Runtime.Extensions|4.3.0", "System.Runtime.Handles|4.3.0", "System.Runtime.InteropServices|4.3.0", "System.Runtime.InteropServices.RuntimeInformation|4.3.0", "System.Runtime.Loader|4.3.0", "System.Runtime.Numerics|4.3.0", "System.Runtime.Serialization.Formatters|4.3.0", "System.Runtime.Serialization.Json|4.3.0", "System.Runtime.Serialization.Primitives|4.3.0", "System.Security.AccessControl|4.4.0", "System.Security.Claims|4.3.0", "System.Security.Cryptography.Algorithms|4.3.0", "System.Security.Cryptography.Cng|4.4.0", "System.Security.Cryptography.Csp|4.3.0", "System.Security.Cryptography.Encoding|4.3.0", "System.Security.Cryptography.OpenSsl|4.4.0", "System.Security.Cryptography.Primitives|4.3.0", "System.Security.Cryptography.X509Certificates|4.3.0", "System.Security.Cryptography.Xml|4.4.0", "System.Security.Principal|4.3.0", "System.Security.Principal.Windows|4.4.0", "System.Text.Encoding|4.3.0", "System.Text.Encoding.Extensions|4.3.0", "System.Text.RegularExpressions|4.3.0", "System.Threading|4.3.0", "System.Threading.Overlapped|4.3.0", "System.Threading.Tasks|4.3.0", "System.Threading.Tasks.Extensions|4.3.0", "System.Threading.Tasks.Parallel|4.3.0", "System.Threading.Thread|4.3.0", "System.Threading.ThreadPool|4.3.0", "System.Threading.Timer|4.3.0", "System.ValueTuple|4.3.0", "System.Xml.ReaderWriter|4.3.0", "System.Xml.XDocument|4.3.0", "System.Xml.XmlDocument|4.3.0", "System.Xml.XmlSerializer|4.3.0", "System.Xml.XPath|4.3.0", "System.Xml.XPath.XDocument|4.3.0"], "framework_list": ["Microsoft.CSharp|6.0.0.0", "Microsoft.VisualBasic.Core|11.0.0.0", "Microsoft.VisualBasic|10.0.0.0", "Microsoft.Win32.Primitives|6.0.0.0", "Microsoft.Win32.Registry|6.0.0.0", "System.AppContext|6.0.0.0", "System.Buffers|6.0.0.0", "System.Collections.Concurrent|6.0.0.0", "System.Collections.Immutable|6.0.0.0", "System.Collections.NonGeneric|6.0.0.0", "System.Collections.Specialized|6.0.0.0", "System.Collections|6.0.0.0", "System.ComponentModel.Annotations|6.0.0.0", "System.ComponentModel.DataAnnotations|4.0.0.0", "System.ComponentModel.EventBasedAsync|6.0.0.0", "System.ComponentModel.Primitives|6.0.0.0", "System.ComponentModel.TypeConverter|6.0.0.0", "System.ComponentModel|6.0.0.0", "System.Configuration|4.0.0.0", "System.Console|6.0.0.0", "System.Core|4.0.0.0", "System.Data.Common|6.0.0.0", "System.Data.DataSetExtensions|4.0.0.0", "System.Data|4.0.0.0", "System.Diagnostics.Contracts|6.0.0.0", "System.Diagnostics.Debug|6.0.0.0", "System.Diagnostics.DiagnosticSource|6.0.0.0", "System.Diagnostics.FileVersionInfo|6.0.0.0", "System.Diagnostics.Process|6.0.0.0", "System.Diagnostics.StackTrace|6.0.0.0", "System.Diagnostics.TextWriterTraceListener|6.0.0.0", "System.Diagnostics.Tools|6.0.0.0", "System.Diagnostics.TraceSource|6.0.0.0", "System.Diagnostics.Tracing|6.0.0.0", "System.Drawing.Primitives|6.0.0.0", "System.Drawing|4.0.0.0", "System.Dynamic.Runtime|6.0.0.0", "System.Formats.Asn1|6.0.0.0", "System.Globalization.Calendars|6.0.0.0", "System.Globalization.Extensions|6.0.0.0", "System.Globalization|6.0.0.0", "System.IO.Compression.Brotli|6.0.0.0", "System.IO.Compression.FileSystem|4.0.0.0", "System.IO.Compression.ZipFile|6.0.0.0", "System.IO.Compression|6.0.0.0", "System.IO.FileSystem.AccessControl|6.0.0.0", "System.IO.FileSystem.DriveInfo|6.0.0.0", "System.IO.FileSystem.Primitives|6.0.0.0", "System.IO.FileSystem.Watcher|6.0.0.0", "System.IO.FileSystem|6.0.0.0", "System.IO.IsolatedStorage|6.0.0.0", "System.IO.MemoryMappedFiles|6.0.0.0", "System.IO.Pipes.AccessControl|6.0.0.0", "System.IO.Pipes|6.0.0.0", "System.IO.UnmanagedMemoryStream|6.0.0.0", "System.IO|6.0.0.0", "System.Linq.Expressions|6.0.0.0", "System.Linq.Parallel|6.0.0.0", "System.Linq.Queryable|6.0.0.0", "System.Linq|6.0.0.0", "System.Memory|6.0.0.0", "System.Net.Http.Json|6.0.0.0", "System.Net.Http|6.0.0.0", "System.Net.HttpListener|6.0.0.0", "System.Net.Mail|6.0.0.0", "System.Net.NameResolution|6.0.0.0", "System.Net.NetworkInformation|6.0.0.0", "System.Net.Ping|6.0.0.0", "System.Net.Primitives|6.0.0.0", "System.Net.Requests|6.0.0.0", "System.Net.Security|6.0.0.0", "System.Net.ServicePoint|6.0.0.0", "System.Net.Sockets|6.0.0.0", "System.Net.WebClient|6.0.0.0", "System.Net.WebHeaderCollection|6.0.0.0", "System.Net.WebProxy|6.0.0.0", "System.Net.WebSockets.Client|6.0.0.0", "System.Net.WebSockets|6.0.0.0", "System.Net|4.0.0.0", "System.Numerics.Vectors|6.0.0.0", "System.Numerics|4.0.0.0", "System.ObjectModel|6.0.0.0", "System.Reflection.DispatchProxy|6.0.0.0", "System.Reflection.Emit.ILGeneration|6.0.0.0", "System.Reflection.Emit.Lightweight|6.0.0.0", "System.Reflection.Emit|6.0.0.0", "System.Reflection.Extensions|6.0.0.0", "System.Reflection.Metadata|6.0.0.0", "System.Reflection.Primitives|6.0.0.0", "System.Reflection.TypeExtensions|6.0.0.0", "System.Reflection|6.0.0.0", "System.Resources.Reader|6.0.0.0", "System.Resources.ResourceManager|6.0.0.0", "System.Resources.Writer|6.0.0.0", "System.Runtime.CompilerServices.Unsafe|6.0.0.0", "System.Runtime.CompilerServices.VisualC|6.0.0.0", "System.Runtime.Extensions|6.0.0.0", "System.Runtime.Handles|6.0.0.0", "System.Runtime.InteropServices.RuntimeInformation|6.0.0.0", "System.Runtime.InteropServices|6.0.0.0", "System.Runtime.Intrinsics|6.0.0.0", "System.Runtime.Loader|6.0.0.0", "System.Runtime.Numerics|6.0.0.0", "System.Runtime.Serialization.Formatters|6.0.0.0", "System.Runtime.Serialization.Json|6.0.0.0", "System.Runtime.Serialization.Primitives|6.0.0.0", "System.Runtime.Serialization.Xml|6.0.0.0", "System.Runtime.Serialization|4.0.0.0", "System.Runtime|6.0.0.0", "System.Security.AccessControl|6.0.0.0", "System.Security.Claims|6.0.0.0", "System.Security.Cryptography.Algorithms|6.0.0.0", "System.Security.Cryptography.Cng|6.0.0.0", "System.Security.Cryptography.Csp|6.0.0.0", "System.Security.Cryptography.Encoding|6.0.0.0", "System.Security.Cryptography.OpenSsl|6.0.0.0", "System.Security.Cryptography.Primitives|6.0.0.0", "System.Security.Cryptography.X509Certificates|6.0.0.0", "System.Security.Principal.Windows|6.0.0.0", "System.Security.Principal|6.0.0.0", "System.Security.SecureString|6.0.0.0", "System.Security|4.0.0.0", "System.ServiceModel.Web|4.0.0.0", "System.ServiceProcess|4.0.0.0", "System.Text.Encoding.CodePages|6.0.0.0", "System.Text.Encoding.Extensions|6.0.0.0", "System.Text.Encoding|6.0.0.0", "System.Text.Encodings.Web|6.0.0.0", "System.Text.Json|6.0.0.0", "System.Text.RegularExpressions|6.0.0.0", "System.Threading.Channels|6.0.0.0", "System.Threading.Overlapped|6.0.0.0", "System.Threading.Tasks.Dataflow|6.0.0.0", "System.Threading.Tasks.Extensions|6.0.0.0", "System.Threading.Tasks.Parallel|6.0.0.0", "System.Threading.Tasks|6.0.0.0", "System.Threading.Thread|6.0.0.0", "System.Threading.ThreadPool|6.0.0.0", "System.Threading.Timer|6.0.0.0", "System.Threading|6.0.0.0", "System.Transactions.Local|6.0.0.0", "System.Transactions|4.0.0.0", "System.ValueTuple|4.0.3.0", "System.Web.HttpUtility|6.0.0.0", "System.Web|4.0.0.0", "System.Windows|4.0.0.0", "System.Xml.Linq|4.0.0.0", "System.Xml.ReaderWriter|6.0.0.0", "System.Xml.Serialization|4.0.0.0", "System.Xml.XDocument|6.0.0.0", "System.Xml.XPath.XDocument|6.0.0.0", "System.Xml.XPath|6.0.0.0", "System.Xml.XmlDocument|6.0.0.0", "System.Xml.XmlSerializer|6.0.0.0", "System.Xml|4.0.0.0", "System|4.0.0.0", "WindowsBase|4.0.0.0", "mscorlib|4.0.0.0", "netstandard|2.1.0.0"]},
- {"name": "Microsoft.NETCore.App.Runtime.linux-x64", "id": "Microsoft.NETCore.App.Runtime.linux-x64", "version": "6.0.8", "sha512": "sha512-cjVzAUiYxPv949mXl0IbwzSRq0xBTGcW3N619CUcCwe35Ma1C1Tg1nh75Xc+OEn5+eAMW/S66dy+kQhdc277tA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.NETCore.App.Runtime.osx-x64", "id": "Microsoft.NETCore.App.Runtime.osx-x64", "version": "6.0.8", "sha512": "sha512-RDOy3pzl0sutv5U3JAx23JWiw2UCoHAPNsCo35TA8MU2DM+LMDXN/lxi2cslot6GfFsxe0cYhclkEocHa2xMPQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.NETCore.App.Runtime.win-x64", "id": "Microsoft.NETCore.App.Runtime.win-x64", "version": "6.0.8", "sha512": "sha512-pgpxzvQPZzBPD1lWulgRO/aafBhSBLhqH+SrBD+sYSIu7eswlxE5icW/r8o60fNFKYVg0CFvrnmCut5YpTT27Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "Microsoft.NETCore.Platforms", "id": "Microsoft.NETCore.Platforms", "version": "7.0.4", "sha512": "sha512-mcQWjuDBh4WHGG4WcBI0k025WAdA2afMm6fs42sm1f+3gRyNQUiuMVT5gAWNUGSHmlu6qn/TCnAQpfl4Gm6cBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "Microsoft.CodeAnalysis.Analyzers", "id": "Microsoft.CodeAnalysis.Analyzers", "version": "3.3.4", "sha512": "sha512-I+Riw6/6WjNICydoiNpDjN/GGP7u4XsL6VsI9lG/OjFufH3flvSEy/fxNhGDVGwZWwq/5BlnqX+LH2dmheaPfg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "4.9.2", "sha512": "sha512-XCtqPQdnoqfrBSidFWIESm8exXVHF4yPY94e84St2PVZPc2bGeQNXdFNwadu1Bd2sr/bAgM5B0UHbCqBz+/SeQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "4.9.2", "sha512": "sha512-oy5nUdJOaOQEjUZimhYH4xU6nVxt8ctkdP7HT2fc32ecvH50QeIwJXgjNt7MGUyhJO+Wd3SipQWQ5QyDw7VuLg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common"], "net462": ["Microsoft.CodeAnalysis.Common"], "net47": ["Microsoft.CodeAnalysis.Common"], "net471": ["Microsoft.CodeAnalysis.Common"], "net472": ["Microsoft.CodeAnalysis.Common"], "net48": ["Microsoft.CodeAnalysis.Common"], "net5.0": ["Microsoft.CodeAnalysis.Common"], "net6.0": ["Microsoft.CodeAnalysis.Common"], "net7.0": ["Microsoft.CodeAnalysis.Common"], "net8.0": ["Microsoft.CodeAnalysis.Common"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common"]}, "targeting_pack_overrides": [], "framework_list": []},
{"name": "Mono.Cecil", "id": "Mono.Cecil", "version": "0.11.4", "sha512": "sha512-CnjwUMmFHnScNG8e/4DRZQQX67H5ajekRDudmZ6Fy1jCLhyH1jjzbQCOEFhBLa2NjPWQpMF+RHdBJY8a7GgmlA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
- {"name": "NETStandard.Library", "id": "NETStandard.Library", "version": "2.0.3", "sha512": "sha512-548M6mnBSJWxsIlkQHfbzoYxpiYFXZZSL00p4GHYv8PkiqFBnnT68mW5mGEsA/ch9fDO9GkPgkFQpWiXZN7mAQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["Microsoft.NETCore.Platforms"], "net451": ["Microsoft.NETCore.Platforms"], "net452": ["Microsoft.NETCore.Platforms"], "net46": ["Microsoft.NETCore.Platforms"], "net461": ["Microsoft.NETCore.Platforms"], "net462": ["Microsoft.NETCore.Platforms"], "net47": ["Microsoft.NETCore.Platforms"], "net471": ["Microsoft.NETCore.Platforms"], "net472": ["Microsoft.NETCore.Platforms"], "net48": ["Microsoft.NETCore.Platforms"], "net5.0": ["Microsoft.NETCore.Platforms"], "net6.0": ["Microsoft.NETCore.Platforms"], "net7.0": ["Microsoft.NETCore.Platforms"], "net8.0": ["Microsoft.NETCore.Platforms"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms"], "netstandard1.1": ["Microsoft.NETCore.Platforms"], "netstandard1.2": ["Microsoft.NETCore.Platforms"], "netstandard1.3": ["Microsoft.NETCore.Platforms"], "netstandard1.4": ["Microsoft.NETCore.Platforms"], "netstandard1.5": ["Microsoft.NETCore.Platforms"], "netstandard1.6": ["Microsoft.NETCore.Platforms"], "netstandard2.0": ["Microsoft.NETCore.Platforms"], "netstandard2.1": ["Microsoft.NETCore.Platforms"]}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Buffers", "id": "System.Buffers", "version": "4.5.1", "sha512": "sha512-gNphWOVbm89+C15jebnPRaYykU8De1PFv1YJV24814IfeGGVa3PXRHDS0MLlbdI1pe9Mpv/n4ZK4INwtAjqv8g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "8.0.0", "sha512": "sha512-BXqVkcIrhimvvem6q2ChWkuW6XYYirvb6FlhvuwaMoBqBdpcr4nehJBKP65Tw40UqcUM6oDoODsecM0yjZ6AUw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Memory", "id": "System.Memory", "version": "4.5.5", "sha512": "sha512-6MjlNsl7lKw0Q8lAsw2tQ89ul9x6jD2Yk3EEj+dOFoYGOE9eAUO9wNhvd4O/n97oQXlkyzqKXXUnE+kLElFy3A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net451": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net452": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net46": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.1": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.2": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.3": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.4": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.5": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard1.6": ["System.Buffers", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.5.0", "sha512": "sha512-nATsBTD2CKr4AYN6eRszhX4sptImWmBJwB/U6XKCWWfnCcrTBw8XSCm3QA9gjppkHTr8OkXUY21MR91D3QZXsw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "8.0.0", "sha512": "sha512-+6sMdkJjee0B6nm3AlBBl7cQaI0oPniLvvkrkFhmEN3fo/hGONaFdwpAaO+GRTlbZe4kRZzFwU7kSXQW0RyJxg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Memory"], "net6.0": ["System.Collections.Immutable"], "net7.0": ["System.Collections.Immutable"], "net8.0": ["System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.0.0", "sha512": "sha512-1AVzAb5OxJNvJLnOADtexNmWgattm2XVOT3TjQTN7Dd4SqoSwai1CsN2fth42uQldJSQdz/sAec0+TzxBFgisw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "8.0.0", "sha512": "sha512-d9rfaxpz7u+1BQem129eOiDgrn0/VQw0kmWuTg1V8K5PDvG0G+CN2BB5io4B27p04sqsdGtRWLjiPXIlI9Rz7Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": [], "net8.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
+ {"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.5.4", "sha512": "sha512-aAUghud9PHGYc3o9oWPWd0C3xE+TJQw5ZZs78htlR6mr9ky/QEgfXHjyQ2GvOq9H1S0YizcVVKCSin92ZcH8FA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["System.Runtime.CompilerServices.Unsafe"], "net451": ["System.Runtime.CompilerServices.Unsafe"], "net452": ["System.Runtime.CompilerServices.Unsafe"], "net46": ["System.Runtime.CompilerServices.Unsafe"], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "netcoreapp1.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.1": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.2": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.3": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.4": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.5": ["System.Runtime.CompilerServices.Unsafe"], "netstandard1.6": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []},
],
)
diff --git a/examples/paket.lock b/examples/paket.lock
index 9b47c5c5..0a3484a2 100644
--- a/examples/paket.lock
+++ b/examples/paket.lock
@@ -11,15 +11,33 @@ NUGET
FSharp.Core (6.0.3)
FSharp.Data (5.0.2)
FSharp.Core (>= 5.0.1)
- Microsoft.AspNetCore.App.Ref (6.0.8)
- Microsoft.AspNetCore.App.Runtime.linux-x64 (6.0.8)
- Microsoft.AspNetCore.App.Runtime.osx-x64 (6.0.8)
- Microsoft.AspNetCore.App.Runtime.win-x64 (6.0.8)
- Microsoft.NETCore.App.Ref (6.0.8)
- Microsoft.NETCore.App.Runtime.linux-x64 (6.0.8)
- Microsoft.NETCore.App.Runtime.osx-x64 (6.0.8)
- Microsoft.NETCore.App.Runtime.win-x64 (6.0.8)
- Microsoft.NETCore.Platforms (7.0.4)
+ Microsoft.CodeAnalysis.Analyzers (3.3.4)
+ Microsoft.CodeAnalysis.Common (4.9.2)
+ Microsoft.CodeAnalysis.Analyzers (>= 3.3.4)
+ System.Collections.Immutable (>= 8.0)
+ System.Memory (>= 4.5.5) - restriction: == netstandard2.0
+ System.Reflection.Metadata (>= 8.0)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
+ System.Text.Encoding.CodePages (>= 8.0) - restriction: == netstandard2.0
+ System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: == netstandard2.0
+ Microsoft.CodeAnalysis.CSharp (4.9.2)
+ Microsoft.CodeAnalysis.Common (4.9.2)
Mono.Cecil (0.11.4)
- NETStandard.Library (2.0.3)
- Microsoft.NETCore.Platforms (>= 1.1)
+ System.Buffers (4.5.1) - restriction: == netstandard2.0
+ System.Collections.Immutable (8.0)
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
+ System.Memory (4.5.5) - restriction: == netstandard2.0
+ System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0)
+ System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (== netstandard2.0)
+ System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0)
+ System.Numerics.Vectors (4.5) - restriction: == netstandard2.0
+ System.Reflection.Metadata (8.0)
+ System.Collections.Immutable (>= 8.0)
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0)
+ System.Runtime.CompilerServices.Unsafe (6.0)
+ System.Text.Encoding.CodePages (8.0) - restriction: == netstandard2.0
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
+ System.Threading.Tasks.Extensions (4.5.4) - restriction: == netstandard2.0
+ System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.0)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= wp8)) (== netstandard2.0)
diff --git a/examples/source_generators/generator/.analyzerconfig b/examples/source_generators/generator/.analyzerconfig
new file mode 100644
index 00000000..e97c48b0
--- /dev/null
+++ b/examples/source_generators/generator/.analyzerconfig
@@ -0,0 +1,2 @@
+is_global = true
+build_property.EnforceExtendedAnalyzerRules = true
diff --git a/examples/source_generators/generator/BUILD.bazel b/examples/source_generators/generator/BUILD.bazel
new file mode 100644
index 00000000..356a83ac
--- /dev/null
+++ b/examples/source_generators/generator/BUILD.bazel
@@ -0,0 +1,20 @@
+load("@rules_dotnet//dotnet:defs.bzl", "csharp_library")
+
+csharp_library(
+ name = "generator",
+ srcs = [
+ "Generator.cs",
+ ],
+ analyzer_configs = [
+ ".analyzerconfig",
+ ],
+ is_analyzer = True,
+ is_language_specific_analyzer = True,
+ target_frameworks = ["netstandard2.0"],
+ visibility = ["//source_generators:__subpackages__"],
+ deps = [
+ "@paket.example_deps//microsoft.codeanalysis.analyzers",
+ "@paket.example_deps//microsoft.codeanalysis.common",
+ "@paket.example_deps//microsoft.codeanalysis.csharp",
+ ],
+)
diff --git a/examples/source_generators/generator/Generator.cs b/examples/source_generators/generator/Generator.cs
new file mode 100644
index 00000000..fc0f44ad
--- /dev/null
+++ b/examples/source_generators/generator/Generator.cs
@@ -0,0 +1,37 @@
+using Microsoft.CodeAnalysis;
+
+namespace SourceGenerator
+{
+ [Generator]
+ public class HelloSourceGenerator : ISourceGenerator
+ {
+ public void Execute(GeneratorExecutionContext context)
+ {
+ // Find the main method
+ var mainMethod = context.Compilation.GetEntryPoint(context.CancellationToken);
+
+ // Build up the source code
+ string source = $@"//
+using System;
+
+namespace {mainMethod.ContainingNamespace.ToDisplayString()}
+{{
+ public static partial class {mainMethod.ContainingType.Name}
+ {{
+ static partial void HelloFrom(string name) =>
+ Console.WriteLine($""Generator says: Hi from '{{name}}'"");
+ }}
+}}
+";
+ var typeName = mainMethod.ContainingType.Name;
+
+ // Add the source code to the compilation
+ context.AddSource($"{typeName}.g.cs", source);
+ }
+
+ public void Initialize(GeneratorInitializationContext context)
+ {
+ // No initialization required for this one
+ }
+ }
+}
diff --git a/examples/source_generators/generator_usage/BUILD.bazel b/examples/source_generators/generator_usage/BUILD.bazel
new file mode 100644
index 00000000..9b572728
--- /dev/null
+++ b/examples/source_generators/generator_usage/BUILD.bazel
@@ -0,0 +1,12 @@
+load("@rules_dotnet//dotnet:defs.bzl", "csharp_binary")
+
+csharp_binary(
+ name = "generator_usage",
+ srcs = [
+ "Main.cs",
+ ],
+ target_frameworks = ["net6.0"],
+ deps = [
+ "//source_generators/generator",
+ ],
+)
diff --git a/examples/source_generators/generator_usage/Main.cs b/examples/source_generators/generator_usage/Main.cs
new file mode 100644
index 00000000..d63f6f11
--- /dev/null
+++ b/examples/source_generators/generator_usage/Main.cs
@@ -0,0 +1,11 @@
+namespace ConsoleApp;
+
+partial class Program
+{
+ static void Main(string[] args)
+ {
+ HelloFrom("Generated Code");
+ }
+
+ static partial void HelloFrom(string name);
+}
diff --git a/paket.dependencies b/paket.dependencies
index 66240cfa..0fb837b7 100644
--- a/paket.dependencies
+++ b/paket.dependencies
@@ -26,6 +26,9 @@ group rules_dotnet_dev_nuget_packages
nuget Magick.NET.Core 12.2.2
nuget System.Memory 4.5.5
nuget System.Text.Json 7.0.3
+ nuget Microsoft.CodeAnalysis.Common 4.9.2
+ nuget Microsoft.CodeAnalysis.Analyzers 3.3.4
+ nuget Microsoft.CodeAnalysis.CSharp 4.9.2
group rules_dotnet_nuget_packages
framework: net6.0
diff --git a/paket.lock b/paket.lock
index 24b8e0aa..6c509810 100644
--- a/paket.lock
+++ b/paket.lock
@@ -368,17 +368,37 @@ NUGET
LibGit2Sharp.NativeBinaries (2.0.315-alpha.0.9)
LibGit2Sharp.NativeBinaries (2.0.315-alpha.0.9)
Magick.NET.Core (12.2.2)
- Microsoft.Bcl.AsyncInterfaces (7.0) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
+ Microsoft.Bcl.AsyncInterfaces (8.0) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) (&& (== netstandard2.1) (>= net462))
+ Microsoft.CodeAnalysis.Analyzers (3.3.4)
+ Microsoft.CodeAnalysis.Common (4.9.2)
+ Microsoft.CodeAnalysis.Analyzers (>= 3.3.4)
+ System.Collections.Immutable (>= 8.0)
+ System.Memory (>= 4.5.5) - restriction: || (== netstandard2.0) (== netstandard2.1)
+ System.Reflection.Metadata (>= 8.0)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
+ System.Text.Encoding.CodePages (>= 8.0) - restriction: || (== netstandard2.0) (== netstandard2.1)
+ System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (== netstandard2.0) (== netstandard2.1)
+ Microsoft.CodeAnalysis.CSharp (4.9.2)
+ Microsoft.CodeAnalysis.Common (4.9.2)
NETStandard.Library.Ref (2.1)
System.Buffers (4.5.1) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
+ System.Collections.Immutable (8.0)
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
System.Memory (4.5.5)
System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) (== netstandard2.1)
System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (== netstandard2.0) (== netstandard2.1)
System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) (== netstandard2.1)
System.Numerics.Vectors (4.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
+ System.Reflection.Metadata (8.0)
+ System.Collections.Immutable (>= 8.0)
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
System.Runtime.CompilerServices.Unsafe (6.0)
System.Security.Principal.Windows (5.0)
+ System.Text.Encoding.CodePages (8.0) - restriction: || (== netstandard2.0) (== netstandard2.1)
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
System.Text.Encodings.Web (7.0)
System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)
System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) (== netstandard2.1)