《CLR Via C#》 C# Compiler

本文讲解"《CLR Via C#》 C# Compiler",用于解决相关问题。



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.



《CLR Via C#》 C# Compiler

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

If you use the Visual Studio Command Prompt window, 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:


    csc File.cs
  • Compiles File.cs producing File.dll:


    csc /target:library File.cs
  • Compiles File.cs and creates My.exe:


    csc /out:My.exe File.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).



关于 "《CLR Via C#》 C# Compiler" 就介绍到此。希望多多支持编程宝库

本文讲解"《CLR Via C#》改变Visual Studio中Output Window输出内容的详细程度",用于解决相关问题。Aft ...