程式集--llorch的Visual Studio基礎教程(終)

來源:互聯網
上載者:User

標籤:

通用的樣本說明:
  • 本系列部落格只討論工具的基礎,不討論任何語言。
    • 甚至不討論快速鍵:-)
    • 可以用滑鼠就完成本教程
  • IDE預設指代的是Visual Studio 2013 Community Edition。 本系列文章的結尾,你可以熟練地使用它寫程式。
  • 將Visual Studio啟動後的預設布局狀態稱為主視窗,主視窗標題列中顯示的項目名稱不必要。
  • 在日常口語和Windows資源管理員的基礎上定義了幾個描述菜單操作的符號:[]、{}、/、>>、=、(,)。
  • 檢查一個設定項的表示方法為:
    • [視窗名稱]/{菜單名稱}/{子功能表名稱}/{設定項項名稱}=設定項的值
  • 例如預設的Debug配置:
    • [主視窗]/{解決方案組態管理員}=Debug
  • 檢查多個設定項時,按照單個設定項的方式,逐一寫出
  • 檢查一個設定項有多個值的時候,用括弧包括並用內部的逗號分隔,如:
    • [方案總管]/{項目名稱}/{引用}=(System,System.Core,System.Data,System.Xml)
  • 執行一個左鍵單擊序列,就是將最後的檢查項換成”/”,例如退出IDE:
    • [主視窗]/{檔案}/{退出}/
  • 右鍵菜單的串連符號為>>,例如重新整理Windows案頭:
    • [案頭]>>{重新整理}/
  • 快顯視窗中的設定項的表示與上類似
  • MDI子視窗中設定項的表示與上類似,注意到在Visual Studio中,MDI子視窗的名稱在它的左上方或者可能自動吸附到主視窗的四周
  • 標題列和狀態列作為菜單的推廣,適用於上述表示方法
  • 缺陷說明
    • 歡迎反饋,mailto:[email protected]
    • 作者的慣用語言是C#
    • 作者是軟狗
    • 作者的IDE沒裝中文語言套件,所以有的名詞翻譯得不準確:-(
    • 由於還沒有釐清相關的認證問題,著作權保留
    • 系列文章沒有提出或解決新的問題,目的只是科普

 

本文

Visual Studio帶來的新的東西,就是對程式集的強大控制。

討論之前的準備:VS2013開發人員命令提示 >> 外部工具
  1. [開始]/{所有程式}/{Visual Studio 2013}/{Visual Studio Tools}/,開啟VS工具檔案夾
  2. 右鍵點擊捷徑“VS2013 開發人員命令提示字元”,選擇屬性,複製“目標”對應的文字框裡的內容
  3. [主視窗]/{工具}/{外部工具}/,呼出[外部工具視窗]
  4. [外部工具]/{添加}/
  5. [外部工具]/{菜單內容}=新工具 1/{標題}=VS2013命令提示
  6. [外部工具視窗]/{菜單內容}=VS2013命令提示/{命令}=%comspec%
  7. [外部工具視窗]/{菜單內容}=VS2013命令提示/{參數}=粘貼內容的參數部分(刪除最前面的%comspec%)
  8. [外部工具視窗]/{菜單內容}=VS2013命令提示/{初始目錄}=$(ProjectDir)
  9. [外部工具視窗]/{菜單內容}=VS2013命令提示/{應用}/
  10. 至此,就可以從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基礎教程(終)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.