csc用法

通过在命令行上键入 C# 编译器可执行文件的名称 (csc.exe),可以在命令行调用 C# 编译器。如果希望从计算机上的任何子目录调用 csc.exe,可能需要调整路径。

本主题提供有关以下内容的详细信息:

  • 运行 VCVARS32.BAT
  • C# 编译器和 C++ 编译器输出之间的差异
  • 命令行语法规则
  • 命令行示例

运行 VCVARS32.BAT

vcvars32.bat 设置适当的环境变量以启用命令行编译。

运行 VCVARS32.BAT

  1. 在命令提示处,更改为安装的 /bin 子目录。
  2. 通过键入 VCVARS32,运行 VCVARS32.bat。
    警告   VCVARS32.bat 因计算机的不同而变化。不要用其他计算机上的 VCVARS32.bat 替换丢失或损坏的 VCVARS32.bat 文件。重新运行安装程序以替换丢失的文件。

有关 vcvars32.bat 的更多信息,请参见下面的知识库文章:

  • Q248802 : Vcvars32.bat Generates Out of Environment Message

如果 Visual Studio 当前版本安装在已经拥有 Visual Studio 早期版本的计算机上,则不应在同一命令窗口中运行来自不同版本的 vcvars32.bat。

C# 编译器和 C++ 编译器输出之间的差异

作为调用 C# 编译器的结果,没有创建任何对象 (.obj) 文件;直接创建输出文件。因此,C# 编译器不需要链接器。

命令行语法规则

当解释操作系统命令行上给出的参数时,C# 编译器代码使用下面的规则:

  • 参数用空白分隔,空白可以是一个空格或制表符。
  • ^ 字符 (^) 未被识别为转义符或者分隔符。该字符在被传递给程序中的 argv 数组前,完全由操作系统的命令行分析器进行处理。
  • 无论其中有无空白,包含在双引号 ("string") 中的字符串均被解释为单个参数。带引号的字符串可以嵌入在参数内。
  • 前面有反斜杠的双引号 (/") 被解释为原义双引号字符 (")。
  • 反斜杠按其原义解释,除非它们紧位于双引号之前。
  • 如果偶数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,并且双引号被解释为字符串分隔符。
  • 如果奇数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,双引号由其余的反斜杠“转义”,使原义双引号 (") 被放置在 argv 数组中。

命令行示例

  • 编译 File.cs 以产生 File.exe:
    csc File.cs 
  • 编译 File.cs 以产生 File.dll:
    csc /target:library File.cs
  • 编译 File.cs 并创建 My.exe:
    csc /out:My.exe File.cs
  • 通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件。输出为 File2.exe:
    csc /define:DEBUG /optimize /out:File2.exe *.cs
  • 编译当前目录中所有的 C# 文件,以产生 File2.dll 的调试版本。不显示任何徽标和警告:
    csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
  • 将当前目录中所有的 C# 文件编译为 Something.xyz(一个 DLL):
    csc /target:library /out:Something.xyz *.cs 

你可能感兴趣的:(C++,String,C#,File,library,编译器)