Rule for compiling C# libraries.
csharp_library(name, additionalfiles, allow_unsafe_blocks, compile_data, data, defines, deps, exports, internals_visible_to, keyfile, langversion, nullable, out, override_strict_deps, override_treat_warnings_as_errors, override_warning_level, override_warnings_as_errors, override_warnings_not_as_errors, private_deps, project_sdk, resources, runtime_identifier, srcs, strict_deps, target_frameworks, treat_warnings_as_errors, warning_level, warnings_as_errors, warnings_not_as_errors)
Compile a C# DLL
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| 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 |
| compile_data | Additional compile time files. | List of labels | optional | [] |
| data | Runtime files. It is recommended to use the @rules_dotnet//tools/runfiles library to read the runtime files. | List of labels | optional | [] |
| defines | A list of preprocessor directive symbols to define. | List of strings | optional | [] |
| deps | Other libraries, binaries, or imported DLLs | List of labels | 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 | [] |
| 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 | [] |
| 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 | "" |
| nullable | Enable nullable context, or nullable warnings. | String | optional | "disable" |
| out | File name, without extension, of the built assembly. | String | optional | "" |
| override_strict_deps | Whether or not to override the strict_deps attribute. | Boolean | optional | False |
| override_treat_warnings_as_errors | Whether or not to override the treat_warnings_as_errors attribute. | Boolean | optional | False |
| override_warning_level | Whether or not to override the warning_level attribute. | Boolean | optional | False |
| override_warnings_as_errors | Whether or not to override the warnings_as_errors attribute. | Boolean | optional | False |
| override_warnings_not_as_errors | Whether or not to override the warnings_not_as_errors attribute. | Boolean | optional | False |
| private_deps | Private dependencies This attribute should be used for dependencies are only private to the target. The dependencies will not be propagated transitively to parent targets and do not become part of the targets runfiles. |
List of labels | optional | [] |
| project_sdk | The project SDK that is being targeted. See https://learn.microsoft.com/en-us/dotnet/core/project-sdk/overview | String | optional | "default" |
| resources | A list of files to embed in the DLL as resources. | List of labels | optional | [] |
| runtime_identifier | The runtime identifier that is being targeted. See https://docs.microsoft.com/en-us/dotnet/core/rid-catalog | String | required | |
| srcs | The source files used in the compilation. | List of labels | optional | [] |
| strict_deps | Whether to use strict dependencies or not. This attribute mirrors the DisableTransitiveProjectReferences in MSBuild. The default setting of this attribute can be overridden in the toolchain configuration |
Boolean | optional | True |
| target_frameworks | A list of target framework monikers to buildSee https://docs.microsoft.com/en-us/dotnet/standard/frameworks | List of strings | required | |
| treat_warnings_as_errors | Treat all compiler warnings as errors. Note that this attribute can not be used in conjunction with warnings_as_errors. | Boolean | optional | False |
| warning_level | The warning level that should be used by the compiler. | Integer | optional | 3 |
| warnings_as_errors | List of compiler warning codes that should be considered as errors. Note that this attribute can not be used in conjunction with treat_warning_as_errors. | List of strings | optional | [] |
| warnings_not_as_errors | List of compiler warning codes that should not be considered as errors. Note that this attribute can only be used in conjunction with treat_warning_as_errors. | List of strings | optional | [] |