- C#程序設計
- 薛海燕 武書彥 馬金素
- 1580字
- 2019-10-23 14:03:44
1.3.3 區分C#的解決方案與項目的關系
至此我們了解到,控制臺應用程序和Windows窗體應用程序在創建時,都涉及項目和解決方案,其實使用Visual Studio的大部分時間都將花在項目或者解決方案內。雖然可以在Visual Studio中編輯孤立的、不和任何項目或解決方案相連的文件,但是使用的大多數文件都是存在于項目或者解決方案的環境中的。
由于Visual Studio的一切幾乎都與項目和解決方案有關,因此了解它們之間的區別以及以后如何輕松地使用它們是至關重要的。下面就認識一下項目和解決方案。
1.項目
項目是在Visual Studio中工作時最重要的部分之一。項目可以有許多用途,但是主要是為了組織源代碼及資源而誕生的,以便將其編譯進庫或者應用程序中。
項目包含任何數量的可編譯成某種形式的輸出源文件。輸出可以是Windows窗體可執行文件、控制臺應用程序、類庫,或者任何數量的不同輸出。不同的語言(如C++、C#、VB.NET等)有不同的項目。還有一些特殊目的的項目,比如安裝項目與數據庫項目。總的來說,Visual Studio包含超過90種不同的項目類型。這個數字隨著安裝設置的不同而不同,而且假如安裝了插件或者語言服務,因為它們會創建更多項目類型,所以這個數量還會增加。
C#項目編譯完成后,可以發布制作成為獨立的可執行文件,并安裝在需要的服務器或客戶端。有關項目的操作詳見后面的學習。
2.解決方案
解決方案是若干有聯系的項目的組合,解決方案存儲其所包含的項目信息,包括項目依賴關系與生成順序,也可以包含一些雜類的解決方案項。
解決方案是Visual Studio組織結構中的最高級別。解決方案這個詞的寓意還是有道理的,因為它把構成整個業務解決方案的所有項目都集合在一起。比如,有一個由5個項目組成的業務解決方案,這5個部分可能包括數據訪問項目、業務層項目、服務接口層項目、表示層項目與Web控件項目。解決方案將所有這些項目組合在一起,使得用戶可以快速在項目之間切換,并且管理它們之間的各種引用。
第一次新建項目時,會自動創建項目所在的解決方案。默認情況下,解決方案同第一個項目名稱相同,也可更改默認的解決方案名稱,如圖1-20所示。

圖1-20 “新建項目”對話框
3.解決方案和項目的關系
通過上面的簡單介紹,已經了解了解決方案和項目之間的大致關系。其實它們就如同公司和部門的關系,如果把一個解決方案比作一個公司,那么公司下屬的各個部門就是解決方案下的各個項目,而后面章節要學到的類就如同公司部門下的各個員工。
一個解決方案可以新建和包含一個或多個項目,這多個項目共同完成一個解決方案的任務。這些項目可以是新建類庫、控制臺應用程序,也可以是Windows窗體應用程序、ASP.NET Web應用程序等。也可以添加其他解決方案中現有的項目,有時候有些項目是已存在寫好的,那么一般都會把這個項目直接復制到正在運行的解決方案對應的文件夾內,然后通過解決方案資源管理器去添加項目。圖1-21所示為一個解決方案下包含了三個項目的例子截圖。
如果需要繼續在本解決方案下添加新的項目文件,則可右擊圖1-21中的解決方案名稱(C Sharp第一個解決方案),在彈出的快捷菜單中選擇“添加”→“新建項目”命令,選擇需要添加的項目類型及名稱、位置等信息。
對于解決方案的文件則有一些限制,在Visual Studio中一次只能打開一個解決方案,如果在當前解決方案下需要打開新的解決方案,Visual Studio會提示先關閉當前的解決方案并打開新的解決方案。不過,同一個項目可以是許多解決方案的成員,于是在用戶所創建的大量目的不同的解決方案中,可以共同擁有相同的項目。對解決方案以及項目所對應的文件作如下說明:
(1)所有類型為Microsoft Visual Studio Solution的文件才是解決方案文件,以.sln結尾,里面包含著整個解決方案的信息,可以雙擊打開此解決方案。
(2)所有類型為Visual C# Project file的文件都是項目文件,以.csproj結尾,里面包含著這個項目的所有信息,雙擊可以打開項目所在的解決方案及其所有項目。
(3)所有類型為Visual C# Source file的文件都是C#的源代碼文件,以.cs結尾,雙擊只能打開查看源代碼,需要依靠所在的項目才能運行。

圖1-21 解決方案和項目的關系
- VMware View Security Essentials
- 在最好的年紀學Python:小學生趣味編程
- Web Development with Django Cookbook
- Corona SDK Mobile Game Development:Beginner's Guide(Second Edition)
- SQL Server 2008 R2數據庫技術及應用(第3版)
- Visual FoxPro 6.0程序設計
- Python計算機視覺和自然語言處理
- Java 從入門到項目實踐(超值版)
- Redmine Cookbook
- 從零開始學Python大數據與量化交易
- C# 7.1 and .NET Core 2.0:Modern Cross-Platform Development(Third Edition)
- Flutter從0基礎到App上線
- 打造流暢的Android App
- Perl 6 Deep Dive
- C#編程魔法書