Skip to content

Latest commit

 

History

History
58 lines (47 loc) · 7.97 KB

csharp_binary.md

File metadata and controls

58 lines (47 loc) · 7.97 KB

Rule for compiling C# binaries.

csharp_binary

load("@rules_dotnet//dotnet/private/rules/csharp:binary.bzl", "csharp_binary")

csharp_binary(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
              analyzer_configs, appsetting_files, compile_data, compiler_options, defines, envs,
              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

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 []
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 []
defines A list of preprocessor directive symbols to define. List of strings optional []
envs A dictionary of environment variables to set when the binary is run. Supports make variable expansion Dictionary: String -> String optional {}
generate_documentation_file Whether or not to generate a documentation file. Boolean optional True
include_host_model_dll Whether to include Microsoft.NET.HostModel from the toolchain. This is only required to build tha apphost shimmer. Boolean optional False
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 ""
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"
roll_forward_behavior The roll forward behavior that should be used: https://learn.microsoft.com/en-us/dotnet/core/versions/selection#control-roll-forward-behavior String optional "Major"
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 []
winexe If true, output a winexe-style executable, otherwiseoutput a console-style executable. Boolean optional False