分享

C#命令行编译器的常用选项_Magic Your Life

 webgj 2009-03-23
C#命令行编译器的常用选项
2007-03-25 14:31

(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.csclientlib.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.execlientlib.netmodule.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多