(1)/addmodule
指定要在所創(chuàng)建程序集中包含的模塊,這是一種創(chuàng)建多文件程序集的簡(jiǎn)便方法。
(2)/debug
允許生成調(diào)試信息。
(3)/define
預(yù)處理器指令能直接傳給編譯器:/define:DEBUG
(4)/delaysign
使用強(qiáng)名的延遲簽名構(gòu)建程序集。
(5)/doc
指定要生成一個(gè)包含XML文檔的輸出文件。
(6)/keyfile
指定.snk文件的路徑,該文件中包含用于強(qiáng)簽名的密鑰對(duì)。
(7)/lib
指定/reference選項(xiàng)中包含的程序集所在的位置。
(8)/out
編譯所得輸出文件的文件名,默認(rèn)為輸入文件名加.exe后綴。
(9)/reference(簡(jiǎn)寫(xiě)/r)
引用一個(gè)外部程序集。
(10)/resource
將資源文件嵌入到創(chuàng)建的程序集中。
(11)/target(簡(jiǎn)寫(xiě)/t)
指定所創(chuàng)建輸出文件的類(lèi)型:
/t:exe 構(gòu)建*.exe控制臺(tái)應(yīng)用,這是默認(rèn)輸出
/t:library 構(gòu)建*.dll程序集
/t:module 構(gòu)建不包含清單的模塊(可移植的可執(zhí)行文件,PE)
/t:winexe 構(gòu)建*.exe Windows窗體程序集
使用原始編譯器的真正意義是,可以同時(shí)處理多個(gè)文件和程序。
例:有兩個(gè)C#源文件,client.cs和clientlib.cs
?。壕幾g多個(gè)文件:
C#編譯器接受多個(gè)輸入源文件,并將輸出合并為一個(gè)程序集
csc /out:client.exe client.cs clientlib.cs
ⅱ:創(chuàng)建和使用代碼庫(kù)
Clientlib中的代碼可以放入一個(gè)單獨(dú)的庫(kù)中,這個(gè)庫(kù)可以由所有客戶訪問(wèn)
csc /t:library clientlib.cs
輸出是一個(gè)名為clientlib.dll的程序集,編譯客戶代碼,并引用這個(gè)外部
程序集:
csc /r:clientlib.dll client.cs
輸出是一個(gè)名為client.exe的程序集,如果使用Ildasm查看,可以看到
單中包含有對(duì)clientlib程序集的引用。
ⅲ:創(chuàng)建多文件程序集
與作為一個(gè)單獨(dú)的程序集相比,更好的方式是將clientlib作為一個(gè)單獨(dú)的文件打包到client.exe程序集中。由于程序集中只有一個(gè)包含清單的文件,所以首先要將clientlib.cs編譯為可移植的可執(zhí)行模塊。為此,要將輸出目標(biāo)設(shè)置為module:
csc /t:module clientlib.cs
輸出文件是clientlib.netmodule。使用編譯器的addmodule選項(xiàng)將它添加到client.exe程序集:
csc /addmodule:clientlib.netmodule client.cs
最后得到的程序集包含兩個(gè)文件:client.exe和clientlib.netmodule.