Below are the list of commands/options available for the Visual C# compiler. These options can be used through the csc.exe executable available along with the .NET framework.
In general case, the executable will be under %SystemRoot%\Microsoft.NET\Framework\<Framework-version>. In this path %SystemRoot% is the windows directory.
OUTPUT FILES
- /out:<file> – Specify output file name (default: base name of file with main class or first file)
- /target:exe – Build a console executable (default) (Short form: /t:exe)
- /target:winexe – Build a Windows executable (Short form: /t:winexe)
- /target:library – Build a library (Short form: /t:library)
- /target:module – Build a module that can be added to another assembly (Short form: /t:module)
- /target:appcontainerexe – Build an Appcontainer executable (Short form: /t:appcontainerexe)
- /target:winmdobj – Build a Windows Runtime intermediate file that is consumed by WinMDExp (Short form: /t:winmdobj)
- /doc:<file> – XML Documentation file to generate
- /platform:<string> – Limit which platforms this code can run on: x86, Itanium, x64, arm, anycpu32bitpreferred, or anycpu. The default is anycpu.
INPUT FILES
- /recurse:<wildcard> – Include all files in the current directory and subdirectories according to the wildcard specifications
- /reference:<alias>=<file> – Reference metadata from the specified assembly file using the given alias (Short form: /r)
- /reference:<file list> – Reference metadata from the specified assembly files (Short form: /r)
- /addmodule:<file list> – Link the specified modules into this assembly
- /link:<file list> – Embed metadata from the specified interop assembly files (Short form: /l)
RESOURCES
- /win32res:<file> – Specify a Win32 resource file (.res)
- /win32icon:<file> – Use this icon for the output
- /win32manifest:<file> – Specify a Win32 manifest file (.xml)
- /nowin32manifest – Do not include the default Win32 manifest
- /resource:<resinfo> – Embed the specified resource (Short form: /res)
- /linkresource:<resinfo> – Link the specified resource to this assembly (Short form: /linkres), Where the resinfo format is <file>[,<string name>[,public|private]]
CODE GENERATION
- /debug[+|-] – Emit debugging information
- /debug:{full|pdbonly} – Specify debugging type (‘full’ is default, and enables attaching a debugger to a running program)
- /optimize[+|-] – Enable optimizations (Short form: /o)
ERRORS AND WARNINGS
- /warnaserror[+|-] – Report all warnings as errors
- /warnaserror[+|-]:<warn list> – Report specific warnings as errors
- /warn:<n> – Set warning level (0-4) (Short form: /w)
- /nowarn:<warn list> – Disable specific warning messages
LANGUAGE
- /checked[+|-] – Generate overflow checks
- /unsafe[+|-] – Allow ‘unsafe’ code
- /define:<symbol list> – Define conditional compilation symbol(s) (Short form: /d)
- /langversion:<string> – Specify language version mode: ISO-1, ISO-2, 3, 4, 5, or Default
SECURITY
- /delaysign[+|-] – Delay-sign the assembly using only the public portion of the strong name key
- /keyfile:<file> – Specify a strong name key file
- /keycontainer:<string> – Specify a strong name key container
- /highentropyva[+|-] – Enable high-entropy ASLR
MISCELLANEOUS
- @<file> – Read response file for more options
- /help – Display this usage message (Short form: /?)
- /nologo – Suppress compiler copyright message
- /noconfig – Do not auto include CSC.RSP file
ADVANCED
- /baseaddress:<address> – Base address for the library to be built
- /bugreport:<file> – Create a ‘Bug Report’ file
- /codepage:<n> – Specify the codepage to use when opening source files
- /utf8output – Output compiler messages in UTF-8 encoding
- /main:<type> – Specify the type that contains the entry point (ignore all other possible entry points) (Short form: /m)
- /fullpaths – Compiler generates fully qualified paths
- /filealign:<n> – Specify the alignment used for output file sections
- /pdb:<file> – Specify debug information file name (default: output file name with .pdb extension)
- /errorendlocation – Output line and column of the end location of each error
- /preferreduilang – Specify the preferred output language name.
- /nostdlib[+|-] – Do not reference standard library (mscorlib.dll)
- /subsystemversion:<string> – Specify subsystem version of this assembly
- /lib:<file list> – Specify additional directories to search in for references
- /errorreport:<string> – Specify how to handle internal compiler errors: prompt, send, queue, or none. The default is queue.
- /appconfig:<file> – Specify an application configuration file containing assembly binding settings
- /moduleassemblyname:<string> – Name of the assembly which this module will be a part of