標籤:
通用的樣本說明:
- 本系列部落格只討論工具的基礎,不討論任何語言。
- IDE預設指代的是Visual Studio 2013 Community Edition。 本系列文章的結尾,你可以熟練地使用它寫程式。
- 將Visual Studio啟動後的預設布局狀態稱為主視窗,主視窗標題列中顯示的項目名稱不必要。
- 在日常口語和Windows資源管理員的基礎上定義了幾個描述菜單操作的符號:[]、{}、/、>>、=、(,)。
- 檢查一個設定項的表示方法為:
- [視窗名稱]/{菜單名稱}/{子功能表名稱}/{設定項項名稱}=設定項的值
- 例如預設的Debug配置:
- 檢查多個設定項時,按照單個設定項的方式,逐一寫出
- 檢查一個設定項有多個值的時候,用括弧包括並用內部的逗號分隔,如:
- [方案總管]/{項目名稱}/{引用}=(System,System.Core,System.Data,System.Xml)
- 執行一個左鍵單擊序列,就是將最後的檢查項換成”/”,例如退出IDE:
- 右鍵菜單的串連符號為>>,例如重新整理Windows案頭:
- 快顯視窗中的設定項的表示與上類似
- MDI子視窗中設定項的表示與上類似,注意到在Visual Studio中,MDI子視窗的名稱在它的左上方或者可能自動吸附到主視窗的四周
- 標題列和狀態列作為菜單的推廣,適用於上述表示方法
- 缺陷說明
- 歡迎反饋,mailto:[email protected]
- 作者的慣用語言是C#
- 作者是軟狗
- 作者的IDE沒裝中文語言套件,所以有的名詞翻譯得不準確:-(
- 由於還沒有釐清相關的認證問題,著作權保留
- 系列文章沒有提出或解決新的問題,目的只是科普
本文
Visual Studio帶來的新的東西,就是對程式集的強大控制。
討論之前的準備:VS2013開發人員命令提示 >> 外部工具
- [開始]/{所有程式}/{Visual Studio 2013}/{Visual Studio Tools}/,開啟VS工具檔案夾
- 右鍵點擊捷徑“VS2013 開發人員命令提示字元”,選擇屬性,複製“目標”對應的文字框裡的內容
- [主視窗]/{工具}/{外部工具}/,呼出[外部工具視窗]
- [外部工具]/{添加}/
- [外部工具]/{菜單內容}=新工具 1/{標題}=VS2013命令提示
- [外部工具視窗]/{菜單內容}=VS2013命令提示/{命令}=%comspec%
- [外部工具視窗]/{菜單內容}=VS2013命令提示/{參數}=粘貼內容的參數部分(刪除最前面的%comspec%)
- [外部工具視窗]/{菜單內容}=VS2013命令提示/{初始目錄}=$(ProjectDir)
- [外部工具視窗]/{菜單內容}=VS2013命令提示/{應用}/
- 至此,就可以從IDE中調用[主視窗]/{工具}/{VS2013命令提示}/,每次開啟的初始目錄就是項目目錄。其他的可選項還有二進位目錄(視解決方案配置對應bin/Debug或bin/Release)、目標檔案目錄、解決方案目錄等。
Visual Studio中的“項目”與程式集的關係
程式集在Windows作業系統中的具體形式,就是副檔名為DLL和EXE的.NET檔案。一個.NET檔案和傳統的可執行檔(甚至傳統的COM組件)不同。.NET檔案有新的檔案結構,最重要的是依賴於.Net Framework X.Y(2.0?3.5?4.0?)組件執行。
一個Visual Studio中的項目就對應於一個新的程式集。Visual Studio開發環境整合了自動化程度非常高的構建工具,同時屏蔽了大量的構建細節。作為Visual Studio使用者可以簡單地認為,一個Visual Studio中的項目就對應於它的構建目標,也就是輸出的程式集。
一個項目“輸出”的程式集可以引用許多的程式集,作為這個項目的“輸入”。程式集的配置通常是每項目的,具體內容儲存在“項目名.csproj ”檔案當中。
私人和共用組件
程式集通常被一個應用程式單獨使用,在預設情況下不共用。通過一個特殊的位置(GAC,全域組件快取)可以在作業系統全域共用組件,使得其上的應用程式都可以使用。
私用組件
直接編譯Viusal Studio模板“輸出”的程式集是私人的。
通常沒有註冊到GAC的程式集都被認為是私人的。私用組件的搜尋路徑在專案檔夾內部。這些程式集通常會跟著項目的部署一起移動(Click Once)。這種策略是有用的,因為有些功能需要依賴於特定版本的私用組件,而這個版本與GAC的不匹配。
明確私用組件的搜尋路徑很有必要,在向項目引入非GAC的第三方庫時,要確保全部程式集及其依賴項已經進入項目的搜尋路徑。
共用組件
顧名思義,共用組件是指那些不用複製到專案檔夾內,依然可以支援項目啟動並執行程式集。共用組件主要是依靠CLR來自動進行管理的。
共用組件一般安裝到全域組件快取檔案夾(GAC)中,它的程式集名是全域唯一的。使用強名工具(sn.exe)和GAC管理工具(gacutil.exe)可以將程式集註冊到全域組件快取。
查看程式集的內容
一般用兩種圖形化的方法查看程式集的內容。
物件瀏覽器
[主視窗]/{視圖}/{物件瀏覽器}/
這實際上是一種效率較高的編程手冊,尤其是引入了第三方庫的時候。
ildasm
開啟VS2013 命令提示,輸入(不含<)
> ildasm
ildasm是一款圖形化的工具 + 生產力,可以查看更多組件中繼資料資訊。
發布項目輸出到GAC
需要四個步驟:起名、簽名、重建和安裝到gac。
1、建立強名
開啟2013命令提示,輸入(不含<)
> sn –k mykey.snk
2、給程式集簽名
[方案總管]/{項目N}>>{屬性}/{簽名}/{為程式集簽名}=勾選
[方案總管]/{項目N}>>{屬性}/{簽名}/{選擇強式名稱密鑰檔案}=<瀏覽…>,呼出[建立強式名稱密鑰]視窗
導航到上一步產生的mykey.snk。
3、設定到位以後,重建,就得到了共用組件
4、將共用組件安裝到GAC(需要管理員權限的命令提示,可能需要從開始菜單裡面,以管理員權限啟動)
開啟VS2013命令提示,輸入(不含<)
> gacutil /i mywork.dll
向項目增加程式集
1、靜態地添加對程式集的引用。使用
[方案總管]/{項目N}/{引用}>>,
2、通過編程的方法嚮應用程式中動態地添加程式集。具體請查閱相關的MSDN內容。
卸載程式集
不能直接從應用程式中卸載程式集。要卸載程式集而又保持應用程式的運行,需要通過編寫代碼的方法,並使用應用程式定義域的概念。
NuGet封裝管理員
使用NuGet封裝管理員、物件瀏覽器和MSDN文檔,可以協助使用者找到能夠滿足要求的程式集。
NuGet主要是彙集了社區的資源,讓開發人員不必重複造輪子。
總結:
程式集概念通常屬於比較容易引起混亂的基礎知識。本文嘗試從實際操作的角度粗略地過一遍。
這是llorch的Visual Studio基本教程部落格的最後一篇。系列部落格的主要目的是整理Visual Studio使用的問題。因為Visual Studio本身使用範圍確實很廣,尤其是它的代碼智能提示和物件瀏覽器,非常強大。而Visual Studio的操作使用,在課堂甚至是論壇裡是不講的。這就是部落格的寫作動機。
Visual Studio是一款難得優秀的編程IDE。雖然隨著時間演變,它支援的程式設計語言生態變得封閉、落後。但是對於廣大編程愛好者、學生和一些專業開發人員來說,它仍然是賴以GTD的工具。
llorch的系列部落格資訊量比較大。基本上一篇部落格對應半天的實際操作。最好的方式是邊操作邊閱讀。在整個系列部落格的尾聲,llorch想傳達的觀念是,IDE是保證代碼的工具。編程工作的中心,是作為產品輸出的代碼。使用工具的根本目的,就是要協助勞動者集中於此。
非常感謝熱心網友給出的反饋。
由於作者的水平和經驗有限,錯誤疏漏之處再所難免。懇請各位讀者朋友指正。請電郵至cqwd2010&qq.com(&為@)。
著作權聲明:本文為博主原創文章,未經博主允許(mailto:[email protected])不得轉載。
程式集--llorch的Visual Studio基礎教程(終)