Rule for compiling C# libraries.
load("@rules_dotnet//dotnet/private/rules/csharp:library.bzl", "csharp_library") csharp_library(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks, 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)
Compile a C# DLL
ATTRIBUTES
Name | Description | Type | Mandatory | Default |
---|---|---|---|---|
name | A unique name for this target. | Name | required | |
deps | Other libraries, binaries, or imported DLLs | List of labels | optional | [] |
srcs | The source files used in the compilation. | 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 | [] |
resources | A list of files to embed in the DLL as resources. | List of labels | optional | [] |
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"] |
nullable | Enable nullable context, or nullable warnings. | String | optional | "disable" |
project_sdk | The project SDK that is being targeted. See https://learn.microsoft.com/en-us/dotnet/core/project-sdk/overview | String | optional | "default" |
run_analyzers | Controls whether analyzers run at build time. | 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 | [] |