在沒有指定輸出文件的情況下,如果通過編譯器編譯後文件是EXE文件,則輸出文件將從包含Main方法的源代碼的文件中獲得名字;如果編譯後的文件是DLL文件,將從第一個源代碼文件中獲得名字。如果用戶想要指定輸出文件名稱,就可以使用此選項。
例子:編譯HelloWord.cs文件,並把輸出文件命名為Hello.exe
csc /out:Hello.exe helloworld.cs
二十一./recurse
此選項允許用戶編譯在指定目錄或者工程目錄的所以子目錄中的所有源代碼文件。用戶可以使用通配符來編譯工程目錄下的所有匹配文件。
例子:編譯/dir1/dir2目錄下及其下級目錄中的所有C#文件,並生成dir2.dll
csc /target:library /out:dir2.dll /recurse: dir1\dir2\*.cs
二十二./refrence
此選項可使得當前編譯工程使用指定文件中的公共類型信息。這個選項對於初學者是很重要的。此選項的簡寫是/r。你必須引用在程序代碼中使用"using"關鍵字導入的所有文件,如果在你的程序中,使用了自己編寫的類庫,在編譯時也必須引用。
例子:編譯文件,並引用在程序中使用的文件
csc /r:system.dll;myExec.exe;myLibrary.dll myProject.cs
(注:其中那個myExec.exe和myLibrary.dll時自己創建的)
二十三./target
這個選項是告訴編譯器你所想得到什麼類型的輸出文件。除非使用/target:module選項,其他選項創建的輸出文件都包含著匯編名單。匯編名單存儲著編譯中所有文件的信息。在一個命令行中如果生成多個輸出文件,但只創建一個匯編名單,並存儲在第一個輸出文件中。
下面是/target的4種用法:
/target:exe 創建一個可執行(EXE)的控制台應用程序
/target:library 創建一個代碼庫(DLL)
/target:winexe 創建一個Windows程序(EXE)
/target:module 創建一個模塊(DLL)
例子:
csc /target:exe myProj.cs // 創建一個EXE文件
csc /target:winexe myProject.cs file://創建一個Windows程序
csc /target:library myProject.cs file://創建一個代碼庫
csc /target:module myProject.cs file://創建一個模塊