C#的編譯過程?
?
?
如何用CSC.exe來編譯Visual C#的代碼文件
?
1.為了使用方便,你可以手動把上面的目錄添加到Path環境變量中去
2.用Csc.exe編譯HelloWorld.cs非常簡單,打開命令提示符,并切換到存放 HelloWorld.cs文件的目錄中,輸入下列行命令:
Csc /r:system.dll HelloWorld.cs
?
命令選項:
?
# | Option | Remark |
1 | @ | 這個選項是用來指定響應文件。響應文件是一種包含了許多編譯選項的文件。這些編譯選項將和源代碼文件一起由編譯器進行處理。一般來說此種響應文件是以文本文件形式出現。他的擴展名.rsp。在響應文件中是用#符號表示開始的注釋。 例:以下是一個響應文件resp1.rsp的內容: # 這是一個簡單的響應文件,文件名稱為resp1.rsp #使用方法: csc @resp1.rsp /target:exe /out:sample.exe sample.cs 此響應文件的作用就是把sample.cs文件編譯成sample.exe文件。如果在一次編譯中要指定多個響應文件,可以指定多個響應文件選項,如:@file1.rsp @file2.rsp |
2 | /? 與 /help | ?? |
3 | /addmodule | 本選項是使編譯器搜集從用戶正在編譯的工程到可用文件中所有類型的信息。所有添加了/addmodule的模塊在運行時必須與輸出文件在同一目錄中。這就是說,用戶可以在編譯時指定任何目錄中的模塊,但在運行時這個模塊必須在應用程序目錄中。文件中不能包含匯編名單。例如:如果輸出文件用/taarget:module創建,其元數據可以用/addmodule導入。 例子:把二個模塊加入myPRoject.cs中 csc /addmodule:module1.dll;module2.dll myProject.cs |
4 | /baseaddress | 本選項允許用戶指定載入DLL時的首選地址,這個首選地址可以是十進制、十六進制、八進制。DLL的缺省首選地址在.Net運行時設置。如果目標文件不是DLL文件,這個選項將被忽略。 例子:把myLibrary.cs編譯成DLL文件,并且當此DLL在.Net運行環境被載入時的地址是0x1111000:csc /baseaddres:0x1111000 /target:library myLibrary.cs |
5 | /bugreport | 這個選項用來報告編譯時的錯誤信息。在報告中包含以下內容: 1).編譯中所有源代碼的一個拷貝 2).在編譯中所有的編譯選項 3).編譯信息,包括編譯器、運行時間、操作系統的版本信息 4).編譯器輸出 5).問題的描述 6).如何解決問題的描述 例子:生成一個bugs.txt文件,并把錯誤報告放在文件里面 csc /bugreport:bugs.txt Hello.cs |
6 | /checked | 此選項指定不在檢驗或或者未檢驗關鍵字范圍內以及導致超出數據類型范圍的值的整數計算語句是否產生運行例外。具體的說就是,如果不在檢驗或者未檢驗關鍵字范圍內的整數計算語句產生的值在數據類型允許的范圍之外,并且在編譯中使用了/checked+(/checked),該語句就會在運行時產生例外,如果在編譯時使用了/checked-,在運行時該語句就不會產生例外。 例子:編譯myMath.cs,并且指定一個不在檢驗或者未檢驗關鍵字范圍內的整數計算語句(且其產生的值超出數據類型的范圍),將在運行時引起例外。 csc /checked+ myMath.cs |
7 | /codepage | 如果用戶編譯的一個或者多個源代碼不使用計算機上的默認代碼頁,可以使用/codepage選項來指定希望使用的代碼頁。/codepage適用于編譯中所有的源代碼文件。 如果源代碼文件在計算機上的同一個代碼頁位置創建,或者源代碼文件用UNICODE或者UTF-8來創建,用戶就不需要使用/codepage了。 |
8 |