專案和解決方案簡介
在本教學課程中,您會探索在Visual Studio中建立 解決方案 和 專案 的意義。 解決方案是用來組織一或多個相關程式碼專案的容器,例如類別庫專案和對應的測試專案。 您可以在方案中建立從某個專案到另一個項目的參考。 本教學課程也會描述項目的屬性及其可包含的一些檔案。
為了了解專案的概念,您可以從頭開始建立方案和專案。 一般而言,您會使用Visual Studio專案 範本 來建立新專案。
在本教學課程中,您將瞭解如何:
- 將項目新增至專案
- 新增第二個專案
- 新增專案參考
- 新增測試程序代碼
- 檢視項目屬性
先決條件
- 如果您沒有 Visual Studio 2019,請前往 Visual Studio 下載 免費安裝。
- 如果您沒有 Visual Studio,請移至 Visual Studio 下載頁面 以免費安裝。
方案和專案
在 Visual Studio 中,解決方案不是 答案。 解決方案只是Visual Studio用來組織一或多個相關專案的容器。 當您開啟方案時,Visual Studio 會自動載入方案所包含的所有專案。
注意
在 Visual Studio 中開發應用程式不需要解決方案和專案。 您可以開啟包含程式代碼的資料夾,並開始撰寫程式代碼、建置和偵錯。 例如,複製 GitHub 存放庫可能不包含 Visual Studio 專案和解決方案。 如需詳細資訊,請參閱 在沒有專案或方案的情況下在 Visual Studio 中開發程式碼。
建立解決方案
從建立一個空的解決方案開始探索。 瞭解 Visual Studio 之後,您可能很少會建立空白方案。 當您建立新專案時,Visual Studio 會自動為專案建立方案,除非已經有方案開啟。
開啟 Visual Studio。
在 [開始] 視窗中,選取 [[建立新專案]。
在 [建立新專案] 頁面上,在搜尋方塊中輸入 [空白方案],選取 [空白方案] 範本,然後選取 [下一步]。
提示
如果您已安裝數個工作負載,空白解決方案 範本可能不會出現在搜尋結果清單頂端。 請嘗試根據清單的搜尋 區段捲動至
其他結果。 它應該會出現在那裡。 將解決方案命名為 QuickSolution,然後選擇 建立。
方案會出現在 Visual Studio 視窗右側 [方案總管] 中。 您可能會經常使用 方案總管 來瀏覽項目的內容。
新增專案
現在,將第一個專案新增至方案。 從空白項目開始,並新增您需要的專案。
在 [方案總管]中,以滑鼠右鍵按一下 [方案 'QuickSolution']。 在操作選單中,選取 新增>新專案。
出現一個寫著 [新增專案]的對話框。
在頂端的搜尋方塊中輸入文字 空白,然後選取 [Language底下的 C# C#。
選取 空白專案(.NET Framework) 範本,然後選取 [下一步]。
將專案命名 QuickDate,然後選取 建立。
在 [方案總管] 中,名為 QuickDate 的專案會出現在方案下方。 目前它包含稱為 App.config的單一檔案。
注意
如果您沒有看到 空白專案 (.NET Framework) 範本,您必須安裝 .NET 桌面開發 Visual Studio 工作負載。 Visual Studio 會使用工作負載型安裝,只安裝您執行之開發類型所需的元件。
當您建立新專案時,安裝新工作負載的一個簡單方式,就是選取 [在文字底下選取 [安裝更多工具和功能] 連結,指出 找不到您要尋找的專案?。 Visual Studio 安裝程式啟動之後,選取 .NET 桌面開發 工作負載,然後選取 [修改] 按鈕。
在 [方案總管]中,以滑鼠右鍵點擊 [方案 'QuickSolution']。 在操作選單中,選取 新增>新專案。
在 [[新增專案] 頁面上,在頂端的搜尋方塊中輸入 空白,然後在 [所有語言 ]下選取 [C#]。
選取 C# 空白專案 (.NET Framework) 範本,然後選取 [下一步]。
注意
Visual Studio 會使用工作負載型安裝,只安裝您執行之開發類型所需的元件。 如果您沒有看到 空白專案(.NET Framework) 範本,請安裝 .NET 桌面開發 的 Visual Studio 工作負載。
當您建立新專案時,安裝新工作負載的一個簡單方式是,選取文字下的[找不到您要尋找的專案?],然後點擊[安裝更多工具和功能]連結。 在 Visual Studio 安裝程式中,選取 .NET 桌面開發 工作負載,然後選取 修改.
在 [設定新專案] 頁面上,將專案命名為 QuickDate,然後選取 [建立]。
QuickDate 項目會出現 在 [方案總管]中的方案底下。 專案包含 References 節點,以及名為 App.config的單一檔案。
將項目新增到專案中
將程式代碼檔案新增至空白專案。
在 [方案總管]中,以滑鼠右鍵點擊 QuickDate 專案。 從操作選單中,選取 [新增>新項目。
[新增項目] 對話框隨即開啟。 如果對話框在精簡檢視中開啟,請選取 [顯示所有範本]。
展開 Visual C# 項目,然後選取 Code。 在中間窗格中,選取 類別 項目範本。 在 [名稱] 下,輸入 [日曆],然後選取 [新增]。
Visual Studio 會將名為 Calendar.cs 的檔案新增至專案。 結尾
.cs
是 C# 程式代碼檔案的擴展名。 Calendar.cs 檔案會出現在 方案總管 可視化專案階層中,檔案會在編輯器中開啟。使用下列程式代碼取代 Calendar.cs 檔案的內容:
using System; namespace QuickDate { internal class Calendar { static void Main(string[] args) { DateTime now = GetCurrentDate(); Console.WriteLine($"Today's date is {now}"); Console.ReadLine(); } internal static DateTime GetCurrentDate() { return DateTime.Now.Date; } } }
您不需要了解程式代碼正在執行的一切。 按下 Ctrl Ctrl+F5來執行應用程式。 應用程式會將今天的日期列印至 主控台或標準輸出視窗。 然後,關閉主控台視窗。
新增第二個專案
解決方案通常包含多個專案,而且這些專案通常會彼此參考。 方案中的某些專案可能是類別庫,有些可能是可執行的應用程式,有些可能是單元測試專案或網站。
若要將單元測試專案新增至您的方案,請從專案範本開始,因此您不需要將另一個程式代碼檔案新增至專案。
在[方案總管]中,以滑鼠右鍵點擊[方案 'QuickSolution']。 從操作選單中,選取 新增>新專案。
在 [新增專案] 對話框中,在頂端的搜尋欄位中輸入 單元測試,然後在 [語言] 底下選取 C#。
選取 .NET Core
單元測試項目 項目樣本,然後選取 [下一步]。 注意
從 Visual Studio 2019 16.9 版開始,MSTest 專案範本名稱從 MSTest 單元測試專案 (.NET Core) 變更為 單元測試專案。 在此更新中,專案建立中的數個步驟已變更。
將專案命名 QuickTest,然後選取 下一步。
選擇建議的目標框架【.NET Core 3.1】或 .NET 5,然後選擇 建立。
第二個專案會新增至 [方案總管]
,而名為 UnitTest1.cs 的檔案會在編輯器中開啟。
在 [方案總管]中,右鍵點擊 [方案 'QuickSolution']。 從操作選單中,選取 [[新增>新增專案]。
在 [新增專案] 對話框中,於上方的搜尋框中輸入 單元測試,然後在 [所有語言] 底下選取 [C#]。
選取 C# 單元測試專案 (.NET Framework) 項目樣本,然後選取 [下一步]。
在 [配置新專案] 頁面上,將專案命名為 QuickTest,然後選取 [建立 ]。
Visual Studio 會將 QuickTest 專案新增至 [方案總管],並在編輯器中開啟 UnitTest1.cs 檔案。
新增項目參考
若要使用新的單元測試專案來測試 QuickDate 專案中的方法,您必須將 QuickDate 的參考新增至 QuickTest 專案。 新增參考會建立兩個專案之間的 建置相依性。 當您建置方案時,QuickDate 會比 QuickTest先建置。
在 QuickTest 專案中,以滑鼠右鍵點選 相依性 節點。 從操作選單中,選取 新增項目參考。
[參考管理員] 對話框隨即開啟。
在左窗格中,展開 [專案],然後選取 [方案]。 在中間窗格中,選取 [QuickDate旁的複選框,然後選取 [確定]。
已新增對 QuickDate 項目的參考。
在 [方案總管]中,以滑鼠右鍵按兩下 QuickTest 專案的 [參考] 節點。 從操作功能表中,選取 [[新增參考]。
在 [參考管理員] 對話框中,選取 [專案]。 在中間窗格中,選取 [QuickDate]旁的複選框,然後選取 [確定]。
QuickDate 專案的參考出現在 [方案總管]中的 QuickTest 專案下。
新增測試程序代碼
現在,將測試程式代碼新增至 C# 測試程式代碼檔案。 使用下列程式代碼取代 UnitTest1.cs 的內容:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace QuickTest { [TestClass] public class UnitTest1 { [TestMethod] public void TestGetCurrentDate() { Assert.AreEqual(DateTime.Now.Date, QuickDate.Calendar.GetCurrentDate()); } } }
紅色波浪線會出現在部分程序代碼底下。 您可以將測試專案設為 友元程序集,對 QuickDate 專案,以修正此錯誤。
在
Calendar.cs 檔案中,使用語句 新增下列,並將 屬性新增至檔案頂端,以解決測試專案中的錯誤。 using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("QuickTest")]
Calendar.cs 程式代碼看起來應該像下列螢幕快照:
執行單元測試
若要檢查單元測試是否正常運作,請從功能表列選擇 [測試]>[執行所有測試]。 [測試總管] 視窗隨即開啟,您應該會看到 TestGetCurrentDate 測試通過。
提示
您也可以從功能表欄選擇 [測試>測試總管],以開啟 [測試總管]。
項目屬性
包含 InternalsVisibleToAttribute 屬性之 Calendar.cs 檔案中的行會參考 QuickTest 專案的元件名稱或檔名。 元件名稱不一定與項目名稱相同。 若要尋找專案的元件名稱,請使用專案屬性。 屬性頁包含項目的各種設定。
在 [方案總管]
中,以滑鼠右鍵按兩下 [ QuickTest 專案,然後選取 [屬性],或選取專案,然後按 Alt Enter 。[屬性頁 為]項目開啟至 [應用程式] 索引標籤。QuickTest 項目的 組件名稱 確實是 QuickTest。
如有需要,您可以在這裡變更名稱。 當您建置測試專案時,產生的二進位檔名稱會從 QuickTest.dll 變更為 <NewName>.dll。
探索專案屬性頁面的其他一些索引標籤,例如 建置 和 除錯。 不同類型的專案有不同的索引標籤。