.Net SDK下有很多命令工具,有許多在我們平時開發應用中很有協助。最近看書總結了一些,但是難免有點以偏概全,掛一漏萬。下面就介紹這些命令的基本用法,實際應用中可以參考MSDN。
切入正題,開啟SDK命令提示,如:
1、ildasm (IL Disassembler IL 反組譯碼器)。
它是一個重要的工具,通過它,可以查看中繼資料(metedata)資訊,IL等。
- 儲存、查看IL代碼:在VS2008命令視窗輸入ILDAsm,然後通過它的【檔案】菜單開啟檔案,如:
- 查看中繼資料資訊:在ILDASM中按"Ctrl+M"即能查看中繼資料資訊。如
2、SN.exe(Strong Name)強式名稱工具。
可使用它來生產密鑰、查看密鑰,並使用它產生的私密金鑰對程式集簽名。寫入密鑰使用它的 -t選項,查看公開金鑰用-tp 選項,如:
3、NGen.exe 本地代碼產生器 。
將一個程式集的所有IL代碼編譯成本地代碼,並將這些本地代碼儲存到一個單獨的檔案中。NGen.exe對最終執行環境做出的假設是非常保守的,所有他產生的程式碼不會像JIT產生的程式碼那樣高度最佳化。
本機映像產生器 (Ngen.exe) 是一個提高託管應用程式效能的工具。Ngen.exe 建立本機映像(包含經編譯的特定於處理器的機器代碼的檔案),並將它們安裝到本機電腦上的本機映像緩衝中。運行庫可從緩衝中使用本機映像,而不是使用即時 (JIT) 編譯器編譯原始程式集。
主要介紹它的三個選項:install(安裝)、uninstall(卸載)、display(顯示).
它安裝有點類似將程式集安裝在GAC中,有點不同的是它安裝的程式集不需要強簽名,而如果要將程式集安裝在GAC中,則需要強簽名。在使用display,顯示程式集之前必須先通過install進行安裝。
安裝使用install選項:
卸載使用uninstall選項:
顯示使用display選項:
4、WSDL。
這個工具大家應該很熟悉,它就是產生WebService代理類的工具,可以通過URI產生,也可以通過Web服務描述語言(WDSL)產生。
5、AL 程式集連結器。
可產生一個EXE或者PE檔案,但不能將多個檔案合并成一個。也可以將資源檔嵌入到一個程式集中。可以產生附屬組件(標明了一種具體文化語言的程式集)
由此可見AL命令產生的程式集只是通過將連結的檔案產生一個新的檔案,串連檔案還是還是存在的
6、CLRVer.exe CLR版本查看工具
列出一台機器上安裝的所有CLR版本。低版本下不能查看高版本。如在3.5下:
4.0下:
7、DumpBin.exe\CorFlags.exe
用它們檢查編譯器產生的託管模組所簽入的資訊。CorFlags轉換工具可用於配置可移植可執行映像的標題CorFlags部分
8、ILAsm.exe IL彙編器,
ILDasm IL反組譯碼器,MSIL 組譯工具。MSIL 組譯工具從 Microsoft 中繼語言 (MSIL) 產生可移植可執行檔 (PE) 檔案。(有關 MSIL 的更多資訊,請參見 編譯為 MSIL。)可以運行結果可執行檔(該檔案包含 MSIL 和所需的中繼資料)以確定 MSIL 是否按預期執行。
將IL代碼產生的PE檔案:
確保 .il 源檔案中的最後一行代碼具有結尾空白或行尾字元。如在使用ILDASM產生的IL代碼末尾如:
9、PEVerify.exe
它檢查一個程式集的所有方法,協助確定其 MSIL 代碼及關聯的中繼資料是否滿足型別安全要求。/md (metedata簡寫)、/il(中繼語言)是它選擇項中的兩個。其中/md針對程式集中的中繼資料(metedata);/IL針對程式集中實現的方法執行 MSIL語言型別安全類型檢查;如果兩者都未指定,則都會檢查,先執行/md檢查,如果沒有錯誤則執行/il檢查,否則會執行檢查。;如果指定/IL檢查,則無論/md檢查如何都會執行/il檢查。
10、TlbImp.exe
COM 類別型庫中的類型定義轉換為公用語言運行庫程式集中的等效定義。Tlbimp.exe 的輸出為二進位檔案(程式集),
該檔案中包含在原始類型庫中定義的類型的運行庫中繼資料。可以使用諸如 Ildasm.exe 這樣的工具檢查此檔案。
11、Tlbexp.exe 類型庫匯出程式。
產生一個類型庫,該類型庫描述公用語言運行庫程式集中定義的類型,應用程式(如 Visual Basic 6.0)可以使用產生的類型庫綁定到程式集中定義的 .NET 類型。不能使用 Tlbexp.exe 從使用類型庫匯入程式 (Tlbimp.exe) 匯入的程式集組建類型庫
12、RegAsm.exe 程式集註冊工具
程式集註冊工具讀取程式集中的中繼資料,並將所需的項添加到註冊表中。註冊表允許 COM 客戶程式以透明方式建立 .NET Framework 類。類一經註冊,任何 COM 客戶程式都可以使用它,就好像該類是一個 COM 類別。類僅在安裝程式集時註冊一次。程式集中的類執行個體直到被實際註冊時,才能從 COM 中建立。
13、CSC.EXE 編譯。如果程式碼中含有不安全的類型,使用它時需要加上unsafe選項指令。
14、SVCUtil.exe。
它的作用類似WSDL,不同的是它用於WCF,將WCF服務生產代理類。
15、GACUtil.exe。
在GAC中安裝一個強命名程式集。弱命名程式集是不能被安裝到GAC中的。預設情況下,執行該命令的使用者必須是Windows 或Administrator下的,其他組下的使用者不能使用此命令對程式集進行安裝、卸載、安裝弱名稱程式集時,如:
使用之前介紹的強式名稱工具SN產生的金鑰組程式集進行簽名,然後安裝:
查看程式集:
卸載程式集:
注意:sn的選擇項區分大小寫。
16、MakeCert.exe認證產生工具。
僅用於產生用於測試目的的x.509認證。使用它時,有許多可選項。其中-sk用於指定密鑰容器的位置,此位置包含私密金鑰。如果不存在,系統將自動建立一個。-n 用於指定認證主題,此名稱必須符合 X.509 標準。最簡單的方法是在雙引號中指定此名稱,並加上首碼 CN=;
17、CertMgr.exe。
認證管理工具,管理憑證、憑證信任清單、憑證撤銷清單它使用認證的兩類儲存區:StoreFile和系統儲存區。不指定憑證存放區區類型,它能識別儲存區類型並執行適當的操作。
在命令列中查看認證資訊:
運行時如果不指定任何參數,將啟動GUI介面:
18、SignTool.exe(.Net FrameWork 1.0、1.1版本中為ChkTrust.exe)。
用於對檔案進行數位簽章,驗證檔案或時間戳記檔案的簽名。為了檢驗SignTool對檔案簽名,首先使用它的Verify選項驗證一下檔案:
對檔案簽名:
19、StoreAdm.隔離儲存區 (Isolated Storage)工具。
管理隔離儲存區 (Isolated Storage),提供列出使用者的儲存區和刪除它們的選項:
20、PermView.exe許可權查看工具。允許查看程式集的請求許可權(僅僅在.Net FrameWork 1.0\1.1中可用)
21、SecUtil
從程式集中提取強式名稱資訊或公開金鑰,並將該資訊轉換為可合并到代碼中的格式。
.Net FrameWork 4.0中已經不再使用。
22、SetReg.exe(在.Net FrameWork 1.0、1.1以上版本中已使用SignTool)。設定註冊表工具
23、Cert2Spc.exe 發行者認證測試載入器。
通過一個或多個X.509認證建立發行者認證。僅用於測試目的
24、InstallUtil。安裝託管的Windows Service。具體參見.Net 平台下開發Windows服務