NET Framework 命令行程序的默認(rèn)安裝目錄是:
C:\(base Windows directory)\Microsoft.NET\Framework\(framework version)
在我的計(jì)算機(jī)上,由于安裝的操作系統(tǒng)是 Windows 2000,所以 .NET Framework 1.1 版本安裝在 winnt 目錄下,所以其路徑是:
C:\winnt\Microsoft.NET\Framework\v1.1.4322
這個(gè)目錄包含無數(shù)的 dll,配置文件和可執(zhí)行文件,等等。在這篇文章中,我將把重點(diǎn)放在可執(zhí)行文件上。下面是這些程序的一個(gè)綱要:
Al.exe:程序集鏈接器(Assembly Linker),該工具從一個(gè)或多個(gè)模塊或者資源文件生成一個(gè)帶有一個(gè)程序集清單的文件。模塊是一個(gè)沒有程序集清單的微軟中間語言文件(MSIL)。所有的 Visual Studio 編譯器都生成程序集。然而,如果你有一個(gè)或多個(gè)模塊(沒有清單的元數(shù)據(jù)),你可以利用 Al.exe 工具使用一個(gè)獨(dú)立文件中的清單創(chuàng)建一個(gè)程序集。
Aspnet_regiis.exe:這個(gè)工具允許你在 IIS 上安裝 ASP.NET。此外,它還可以簡(jiǎn)化同時(shí)運(yùn)行的多個(gè) ASP.NET 版本的使用。它允許你為 ASP.NET 應(yīng)用程序更新腳本映射以指向與該工具關(guān)聯(lián)的ASP.NET ISAPI 版本。這個(gè)工具還可以用來顯示所有安裝的ASP.NET 版本的狀態(tài),注冊(cè) ASP.NET 版本以及工具,創(chuàng)建客戶端腳本目錄,完成其它配置操作。
Aspnet_state.exe:這個(gè)工具允許會(huì)話狀態(tài)信息存儲(chǔ)在一臺(tái)計(jì)算機(jī)上。它以一個(gè)服?裨誦校綣嶧白刺畔⒋媧⒃諞惶ㄔ凍碳撲慊希霉ぞ咭部梢園滄暗僥翹ㄔ凍碳撲慊稀?
Caspol.exe:代碼訪問安全策略(Code Access Security Policy)工具,該工具能夠讓用戶和管理員在機(jī)器策略級(jí)、用戶策略級(jí)和企業(yè)策略級(jí)修改安全策略。你可以使用Caspol.exe 編寫一個(gè)批處理腳本來配置安全策略。
ConfigWizards.exe:這個(gè)工具啟動(dòng) .NET 向?qū)Т翱冢╓indows Control Panel | Administrative Tools | Microsoft .NET Framework Wizards 1.1)。它提供對(duì)以下三個(gè)工具的訪問:Adjust .NET Security、Trust An Assembly 和Fix An Application。
csc.exe:Visual C# 編譯器。/debug 開關(guān)進(jìn)入調(diào)試模式。
cvtres.exe:資源對(duì)象轉(zhuǎn)換器(資源轉(zhuǎn)換成對(duì)象)。這個(gè)工具通常用來將一個(gè)二進(jìn)制資源文件轉(zhuǎn)成一個(gè)對(duì)象文件。本地資源通常以 .rc 文件開始,然后被 rc.exe 編譯成一個(gè) .res 文件,然后再由 cvtres.exe 工具轉(zhuǎn)成一個(gè) .obj 文件,最后像其它 .obj 文件一樣被鏈接到你的本地應(yīng)用程序中。
dw15.exe:這個(gè)工具給出在使用 .NET Framework 時(shí)你想看到的錯(cuò)誤消息。錯(cuò)誤消息詢問你是否想發(fā)送一個(gè)錯(cuò)誤報(bào)告給微軟。(很多用戶控告這個(gè)小程序是微軟的間諜軟件。)
Gacutil.exe:全局程序集緩存(Global Assembly Cache)工具,該工具用于管理程序集緩存。它可以用來查看全局緩存的內(nèi)容,添加或刪除程序集。要想使用該工具列出全局程序集緩存(GAC)的所有程序集,可以使用/l 開關(guān)。(/i 開關(guān)安裝程序集,/u 開關(guān)刪除程序集。)
IEExec.exe:這個(gè)工具簡(jiǎn)化使用 URL 啟動(dòng)的應(yīng)用程序的測(cè)試,包括無觸點(diǎn)開發(fā) Windows Form 之類的應(yīng)用程序。工具 IEExec.exe 可以代替 IDE 調(diào)試這些應(yīng)用程序。它只接受 URL 參數(shù)(例如,IEExec.exe http://Server/TheApplication.Exe。);它不允許指定區(qū)域設(shè)置和站點(diǎn)設(shè)置。如果你試圖指定區(qū)域設(shè)置和站點(diǎn)設(shè)置,就會(huì)出現(xiàn)錯(cuò)誤。
Ilasm.exe:MSIL匯編程序(Assembler),該工具從 MSIL 程序集生成一個(gè)可移植的可執(zhí)行文件(PE)。你可以運(yùn)行生成的可執(zhí)行文件以確定 MSIL 是否生成了你要的東西。
Installutil.exe:安裝程序(Installer)工具,該工具允許你在一個(gè)指定的程序集中執(zhí)行安裝程序組件來安裝和卸載服務(wù)器資源。這個(gè)工具與System.Configuration.Install 命名空間中的類聯(lián)合工作。例如,在安裝一個(gè) Windows 服務(wù)時(shí)這個(gè)工具會(huì)被用到。
jsc.exe:一個(gè) _JSciprt .NET 編譯器。/debug 開關(guān)進(jìn)入調(diào)試模式。
Migpol.ex:遷移策略(Migration Policy)工具,該工具提供在兩個(gè)可兼容的 .NET Framework 版本之間遷移策略的能力。
Ngen.exe:原生圖像生成器(Native Image Generator),該工具從一個(gè)托管程序集創(chuàng)建一個(gè)原生圖像,并將其安裝到位于本地計(jì)算機(jī)的原生圖像緩存上。原生圖像緩存是 GAC 的保留區(qū)域。一旦你為一個(gè)程序集創(chuàng)建了一個(gè)原生圖像,之后程序集每次運(yùn)行時(shí)運(yùn)行庫(kù)(runtime)就會(huì)自動(dòng)使用那個(gè)原生圖像。
Regasm.exe:程序集注冊(cè)(Assembly Registration)工具,該工具讀取一個(gè)程序集中的元數(shù)據(jù),將必要的條目添加到注冊(cè)表中;這樣就允許 COM 客戶端透明地創(chuàng)建 .NET Framework 類。在 .NET Framework 類被注冊(cè)之后,任何 COM 客戶端就可以使用它,就好像它是一個(gè) COM 類一樣。.NET Framework 類只會(huì)被注冊(cè)一次,就是在程序集被安裝時(shí)注冊(cè)。在程序集中的 .NET Framework 類被注冊(cè)之前,它們的實(shí)例不能從 COM 創(chuàng)建。
Regsvcs.exe:這個(gè)服務(wù)安裝工具可以用來裝載和注冊(cè)程序集,注冊(cè)和安裝類型庫(kù),或者配置添加到一個(gè)類的服務(wù)。Regsvcs.exe 需要一個(gè)由assemblyFile.dll 指定的源程序集文件。這個(gè)程序集必須使用強(qiáng)名簽名。.NET Framework SDK 中提供了強(qiáng)名工具(Sn.exe)。
vbc.exe:Visual Basic .NET 編譯器。/debug 開關(guān)進(jìn)入調(diào)試模式。
vbj.exe:Visual J# .NET 編譯器。/debug 開關(guān)進(jìn)入調(diào)試模式。
這些工具能夠進(jìn)行全部的 .NET 開發(fā)。多數(shù)這些工具都支持命令行開關(guān)(也就是命令行后接一個(gè)斜線)。這些開關(guān)允許你指定設(shè)置選擇或者使用工具的其它方面(像編譯器的 /debug 選項(xiàng))。你可以在命令后面輸入 /? 或者 /help 獲得工具命令行開關(guān)選項(xiàng)的完整列表。這樣就提供給你使用工具的完整的語法信息。
我通常喜歡使用友好的 Visual Studio .NET 環(huán)境,但是在造訪一位客戶之后,我現(xiàn)在開始欣賞命令行選項(xiàng)了。我到了他們那里安裝了更改了的代碼,但是我還必須現(xiàn)在場(chǎng)做一些額外的更改。這些更改就需要重新編譯代碼,但是我的機(jī)器沒有安裝Visual Studio .NET。幸運(yùn)的是,我能夠使用命令行工具完成這些工作。
選擇界面
很多開發(fā)人員喜歡 Visual Studio .NET 和其它開發(fā)工具的圖形環(huán)境,但是另外一個(gè)派別的開發(fā)人員則非常喜歡由命令行環(huán)境提供的控制權(quán)。讓人感到欣慰的是,微軟提供了這兩種開發(fā)應(yīng)用程序的方法,具體選用哪種方法就看你的喜好了。
|