C# Compiler "csc" Options

A complete list of options is provided for the 'csc' compiler in .NET Framework 4.6.1 SDK.

So far, we have learned how to compile and execute simple and short C# programs without using any compiler options. But we want to compile more complex programs, we need to learn some compiler options.

Here is a complete list of options supported by the C# compiler "csc" in .NET Framework 4.6.1 SDK:

C:\herong>csc /help
Microsoft (R) Visual C# Compiler version 4.6.1055.0

                        Visual C# Compiler Options

                        - 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

Table of Contents

 About This Book

 Introduction of C# (C Sharp)

 Data Type and Variables

 Logical Expressions and Conditional Statements

 Arrays and Loop Statements

 Data Type Features

 Floating-Point Data Types

 Passing Parameters to Methods

 Execution Environment Class

 Visual C# 2010 Express Edition

 Class Features

 C# Compiler and Intermediate Language

Compiling C# Source Code Files

C# Compiler "csc" Options

 Multiple Classes in a Single Source File

 Compiling Multiple Source Code Files Together

 Generating and Using .NET Library Files

 MSBuild - Microsoft Build Engine

 Memory Usages of Processes

 Multithreading in C#

 Async Feature from C# 5

 System.IO.FileInfo Class

 System.Diagnostics.FileVersionInfo Class

 WPF - Windows Presentation Foundation

 Partial Classes and Partial Methods

 Archived Tutorials

 References

 Full Version in PDF/ePUB