1、CSC.exe的存放位置


如果想要使用C# Compiler,只要在命令提示符(command prompt)中输入csc.exe就可以了。csc.exe的路径在C:\Windows\Microsoft.NET\Framework64\v4.0.30319下。(注意,我的电脑的操作系统是64位。)

You can invoke the C# compiler by typing the name of its executable file (csc.exe) at a command prompt. The csc.exe executable file usually is located in the Microsoft.NET\Framework\Version folder under the Windows directory.



如果使用Visul Studio Command Prompt的命令提示符,一些“环境变量”会帮你设置好,就不需要自己再进行设置了。

If you use theVisual Studio Command Promptwindow, all the necessary environment variables are set for you.


如果你使用标准的cmd.exe文件,就需要自己设置一下,可以参考“How to: Set Environment Variables for the Visual Studio Command Line”地址:https://msdn.microsoft.com/zh-cn/library/1700bbwd.aspx



2、C# Compiler的一些示例

Compiles File.cs producing File.exe:


cscFile.cs

Compiles File.cs producing File.dll:


csc/target:libraryFile.cs

Compiles File.cs and creates My.exe:


csc/out:My.exeFile.cs

Compiles all the C# files in the current directory, with optimizations on and defines the DEBUG symbol.The output is File2.exe:


csc/define:DEBUG/optimize/out:File2.exe*.cs

Compiles all the C# files in the current directory producing a debug version of File2.dll.No logo and no warnings are displayed:


csc/target:library/out:File2.dll/warn:0/nologo/debug*.cs

Compiles all the C# files in the current directory to Something.xyz (a DLL):


csc/target:library/out:Something.xyz*.cs



3、C# Compiler Options Listed Alphabetically


参考网址:

C# Compiler Options Listed Alphabetically

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: ISO-1, ISO-2, 3, 4, 5, 6, or Default

/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.

/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).