C#命令行编译器的常用选项
C#命令行编译器的常用选项(1)/addmodule 指定要在所创建程序集中包含的模块,这是一种创建多文件程序集的简便方法。(2)/debug 允许生成调试信息。(3)/define 预处理器指令能直接传给编译器:/define:DEBUG(4)/delaysign 使用强名的延迟签名构建程序集。(5)/doc 指定要生成一个包含XML文档的输出文件。(6)/keyfile 指定.snk文件的路径,该文件中包含用于强签名的密钥对。(7)/lib 指定/reference选项中包含的程序集所在的位置。(8)/out 编译所得输出文件的文件名,默认为输入文件名加.exe后缀。(9)/reference(简写/r) 引用一个外部程序集。(10)/resource 将资源文件嵌入到创建的程序集中。(11)/target(简写/t) 指定所创建输出文件的类型: /t:exe 构建*.exe控制台应用,这是默认输出 /t:library 构建*.dll程序集 /t:module 构建不包含清单的模块(可移植的可执行文件,PE) /t:winexe 构建*.exe Windows窗体程序集使用原始编译器的真正意义是,可以同时处理多个文件和程序。例:有两个C#源文件,client.cs和clientlib.cs:编译多个文件: C#编译器接受多个输入源文件,并将输出合并为一个程序集csc /out:client.exe client.cs clientlib.cs:创建和使用代码库 Clientlib中的代码可以放入一个单独的库中,这个库可以由所有客户访问csc /t:library clientlib.cs输出是一个名为clientlib.dll的程序集,编译客户代码,并引用这个外部程序集:csc /r:clientlib.dll client.cs输出是一个名为client.exe的程序集,如果使用Ildasm查看,可以看到单中包含有对clientlib程序集的引用。:创建多文件程序集 与作为一个单独的程序集相比,更好的方式是将clientlib作为一个单独的文件打包到client.exe程序集中。由于程序集中只有一个包含清单的文件,所以首先要将clientlib.cs编译为可移植的可执行模块。为此,要将输出目标设置为module: csc /t:module clientlib.cs输出文件是clientlib.netmodule。使用编译器的addmodule选项将它添加到client.exe程序集: csc /addmodule:clientlib.netmodule client.cs最后得到的程序集包含两个文件:client.exe和clientlib.netmodule.