C# Compiler Options Listed Alphabetically

The following compiler options are sorted alphabetically. For a categorical list, see C# Compiler Options Listed by Category.

Option Purpose
@ Reads a response file for more options.
-? Displays a usage message to stdout.
-additionalfile Names additional files that don't directly affect code generation but may be used by analyzers for producing errors or warnings.
-addmodule Links the specified modules into this assembly
-analyzer Run the analyzers from this assembly (Short form: -a)
-appconfig Specifies the location of app.config at assembly binding time.
-baseaddress Specifies the base address for the library to be built.
-bugreport Creates a 'Bug Report' file. This file will be sent together with any crash information if it is used with -errorreport:prompt or -errorreport:send.
-checked Causes the compiler to generate overflow checks.
-checksumalgorithm:<alg> Specify the algorithm for calculating the source file checksum stored in PDB. Supported values are: SHA1 (default) or SHA256.
-codepage Specifies the codepage to use when opening source files.
-debug Emits debugging information.
-define Defines conditional compilation symbols.
-delaysign Delay-signs the assembly by using only the public part of the strong name key.
-doc Specifies an XML Documentation file to generate.
-errorreport Specifies how to handle internal compiler errors: prompt, send, or none. The default is none.
-filealign Specifies the alignment used for output file sections.
-fullpaths Causes the compiler to generate fully qualified paths.
-help Displays a usage message to stdout.
-highentropyva Specifies that high entropy ASLR is supported.
-incremental Enables incremental compilation [obsolete].
-keycontainer Specifies a strong name key container.
-keyfile Specifies a strong name key file.
-langversion:<string> Specify language version mode: Default, ISO-1, ISO-2, 3, 4, 5, 6, 7, 7.1, or Latest
-lib Specifies additional directories in which to search for references.
-link Makes COM type information in specified assemblies available to the project.
-linkresource Links the specified resource to this assembly.
-main Specifies the type that contains the entry point (ignore all other possible entry points).
-moduleassemblyname Specifies an assembly whose non-public types a .netmodule can access.
-modulename:<string> Specify the name of the source module
-noconfig Instructs the compiler not to auto include CSC.RSP file.
-nologo Suppresses compiler copyright message.
-nostdlib Instructs the compiler not to reference standard library (mscorlib.dll).
-nowarn Disables specific warning messages
-nowin32manifest Instructs the compiler not to embed an application manifest in the executable file.
-optimize Enables/disables optimizations.
-out Specifies the output file name (default: base name of file with main class or first file).
-parallel[+|-] Specifies whether to use concurrent build (+).
-pdb Specifies the file name and location of the .pdb file.
-platform Limits which platforms this code can run on: x86, Itanium, x64, anycpu, or anycpu32bitpreferred. The default is anycpu.
-preferreduilang Specifies the language to be used for compiler output.
-recurse Includes all files in the current directory and subdirectories according to the wildcard specifications.
-reference References metadata from the specified assembly files.
-refout Generate a reference assembly in addition to the primary assembly.
-refonly Generate a reference assembly instead of a primary assembly.
-resource Embeds the specified resource.
-ruleset:<file> Specify a ruleset file that disables specific diagnostics.
-subsystemversion Specifies the minimum version of the subsystem that the executable file can use.
-target Specifies the format of the output file by using one of four options: -target:appcontainerexe, -target:exe, -target:library, -target:module, -target:winexe, -target:winmdobj.
-unsafe Allows unsafe code.
-utf8output Outputs compiler messages in UTF-8 encoding.
-warn Sets the warning level (0-4).
-warnaserror Reports specific warnings as errors.
-win32icon Uses this icon for the output.
-win32manifest Specifies a custom win32 manifest file.
-win32res Specifies the win32 resource file (.res).

See Also

C# Compiler Options
C# Compiler Options Listed by Category
How to: Set Environment Variables for the Visual Studio Command Line
<compiler> Element