共用方式為


專案和解決方案簡介

在本教學課程中,您會探索在Visual Studio中建立 解決方案專案 的意義。 解決方案是用來組織一或多個相關程式碼專案的容器,例如類別庫專案和對應的測試專案。 您可以在方案中建立從某個專案到另一個項目的參考。 本教學課程也會描述項目的屬性及其可包含的一些檔案。

為了了解專案的概念,您可以從頭開始建立方案和專案。 一般而言,您會使用Visual Studio專案 範本 來建立新專案。

在本教學課程中,您將瞭解如何:

  • 將項目新增至專案
  • 新增第二個專案
  • 新增專案參考
  • 新增測試程序代碼
  • 檢視項目屬性

先決條件

方案和專案

在 Visual Studio 中,解決方案不是 答案。 解決方案只是Visual Studio用來組織一或多個相關專案的容器。 當您開啟方案時,Visual Studio 會自動載入方案所包含的所有專案。

注意

在 Visual Studio 中開發應用程式不需要解決方案和專案。 您可以開啟包含程式代碼的資料夾,並開始撰寫程式代碼、建置和偵錯。 例如,複製 GitHub 存放庫可能不包含 Visual Studio 專案和解決方案。 如需詳細資訊,請參閱 在沒有專案或方案的情況下在 Visual Studio 中開發程式碼

建立解決方案

從建立一個空的解決方案開始探索。 瞭解 Visual Studio 之後,您可能很少會建立空白方案。 當您建立新專案時,Visual Studio 會自動為專案建立方案,除非已經有方案開啟。

  1. 開啟 Visual Studio。

  2. 在 [開始] 視窗中,選取 [[建立新專案]

  3. 在 [建立新專案] 頁面上,在搜尋方塊中輸入 [空白方案],選取 [空白方案] 範本,然後選取 [下一步]。

    顯示 Visual Studio 2019 中所選取空白解決方案範本的螢幕快照。

    提示

    如果您已安裝數個工作負載,空白解決方案 範本可能不會出現在搜尋結果清單頂端。 請嘗試根據清單的搜尋 區段捲動至 其他結果。 它應該會出現在那裡。

  4. 將解決方案命名為 QuickSolution,然後選擇 建立

    方案會出現在 Visual Studio 視窗右側 [方案總管] 中。 您可能會經常使用 方案總管 來瀏覽項目的內容。

  1. 開啟 Visual Studio,然後在 [開始] 視窗中,選取 [[建立新專案]

  2. 在 [建立新專案] 頁面上,在搜尋方塊中輸入 空白解決方案,選取 [空白方案 範本],然後選取 [下一步]

    顯示 Visual Studio 中選取空白解決方案範本的螢幕快照。

    提示

    如果您安裝了多個工作負載,空白解決方案 範本可能不會出現在搜尋結果清單的頂端。 請嘗試捲動 其他結果,以尋找範本。

  3. 在 [設定新專案] 頁面上,將方案命名為 QuickSolution,然後選取 [建立]。

    QuickSolution 解決方案會出現在 Visual Studio 視窗右側 [方案總管] 中。 您將經常使用 方案總管 來瀏覽項目的內容。

新增專案

現在,將第一個專案新增至方案。 從空白項目開始,並新增您需要的專案。

  1. 在 [方案總管]中,以滑鼠右鍵按一下 [方案 'QuickSolution']。 在操作選單中,選取 新增>新專案

    出現一個寫著 [新增專案]的對話框。

  2. 在頂端的搜尋方塊中輸入文字 空白,然後選取 [Language底下的 C# C#

  3. 選取 空白專案(.NET Framework) 範本,然後選取 [下一步]

  4. 將專案命名 QuickDate,然後選取 建立

    在 [方案總管] 中,名為 QuickDate 的專案會出現在方案下方。 目前它包含稱為 App.config的單一檔案。

    注意

    如果您沒有看到 空白專案 (.NET Framework) 範本,您必須安裝 .NET 桌面開發 Visual Studio 工作負載。 Visual Studio 會使用工作負載型安裝,只安裝您執行之開發類型所需的元件。

    當您建立新專案時,安裝新工作負載的一個簡單方式,就是選取 [在文字底下選取 [安裝更多工具和功能] 連結,指出 找不到您要尋找的專案?。 Visual Studio 安裝程式啟動之後,選取 .NET 桌面開發 工作負載,然後選取 [修改] 按鈕。

    顯示 [開啟 Visual Studio 安裝程式] 連結的螢幕快照。

  1. 在 [方案總管]中,以滑鼠右鍵點擊 [方案 'QuickSolution']。 在操作選單中,選取 新增>新專案

  2. 在 [[新增專案] 頁面上,在頂端的搜尋方塊中輸入 空白,然後在 [所有語言 ]下選取 [C#]。

  3. 選取 C# 空白專案 (.NET Framework) 範本,然後選取 [下一步]

    注意

    Visual Studio 會使用工作負載型安裝,只安裝您執行之開發類型所需的元件。 如果您沒有看到 空白專案(.NET Framework) 範本,請安裝 .NET 桌面開發 的 Visual Studio 工作負載。

    當您建立新專案時,安裝新工作負載的一個簡單方式是,選取文字下的[找不到您要尋找的專案?],然後點擊[安裝更多工具和功能]連結。 在 Visual Studio 安裝程式中,選取 .NET 桌面開發 工作負載,然後選取 修改.

    顯示「開啟 Visual Studio 安裝程式」連結的螢幕截圖。

  4. 在 [設定新專案] 頁面上,將專案命名為 QuickDate,然後選取 [建立]

    QuickDate 項目會出現 在 [方案總管]中的方案底下。 專案包含 References 節點,以及名為 App.config的單一檔案。

將項目新增到專案中

將程式代碼檔案新增至空白專案。

  1. [方案總管]中,以滑鼠右鍵點擊 QuickDate 專案。 從操作選單中,選取 [新增>新項目

    [新增項目] 對話框隨即開啟。 如果對話框在精簡檢視中開啟,請選取 [顯示所有範本]。

  2. 展開 Visual C# 項目,然後選取 Code。 在中間窗格中,選取 類別 項目範本。 在 [名稱] 下,輸入 [日曆],然後選取 [新增]。

    Visual Studio 會將名為 Calendar.cs 的檔案新增至專案。 結尾 .cs 是 C# 程式代碼檔案的擴展名。 Calendar.cs 檔案會出現在 方案總管 可視化專案階層中,檔案會在編輯器中開啟。

  3. 使用下列程式代碼取代 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來執行應用程式。 應用程式會將今天的日期列印至 主控台或標準輸出視窗。 然後,關閉主控台視窗。

新增第二個專案

解決方案通常包含多個專案,而且這些專案通常會彼此參考。 方案中的某些專案可能是類別庫,有些可能是可執行的應用程式,有些可能是單元測試專案或網站。

若要將單元測試專案新增至您的方案,請從專案範本開始,因此您不需要將另一個程式代碼檔案新增至專案。

  1. 在[方案總管]中,以滑鼠右鍵點擊[方案 'QuickSolution']。 從操作選單中,選取 新增>新專案

  2. 在 [新增專案] 對話框中,在頂端的搜尋欄位中輸入 單元測試,然後在 [語言] 底下選取 C#

  3. 選取 .NET Core 單元測試項目 項目樣本,然後選取 [下一步]

    注意

    從 Visual Studio 2019 16.9 版開始,MSTest 專案範本名稱從 MSTest 單元測試專案 (.NET Core) 變更為 單元測試專案。 在此更新中,專案建立中的數個步驟已變更。

  4. 將專案命名 QuickTest,然後選取 下一步

  5. 選擇建議的目標框架【.NET Core 3.1】或 .NET 5,然後選擇 建立

    第二個專案會新增至 [方案總管],而名為 UnitTest1.cs 的檔案會在編輯器中開啟。

    顯示包含兩個項目的「方案總管」的螢幕快照。

  1. 在 [方案總管]中,右鍵點擊 [方案 'QuickSolution']。 從操作選單中,選取 [[新增>新增專案]

  2. 在 [新增專案] 對話框中,於上方的搜尋框中輸入 單元測試,然後在 [所有語言] 底下選取 [C#]。

  3. 選取 C# 單元測試專案 (.NET Framework) 項目樣本,然後選取 [下一步]

  4. 在 [配置新專案] 頁面上,將專案命名為 QuickTest,然後選取 [建立 ]

    Visual Studio 會將 QuickTest 專案新增至 [方案總管],並在編輯器中開啟 UnitTest1.cs 檔案。

    顯示方案總管與兩個項目的螢幕快照。

新增項目參考

若要使用新的單元測試專案來測試 QuickDate 專案中的方法,您必須將 QuickDate 的參考新增至 QuickTest 專案。 新增參考會建立兩個專案之間的 建置相依性。 當您建置方案時,QuickDate 會比 QuickTest先建置。

  1. QuickTest 專案中,以滑鼠右鍵點選 相依性 節點。 從操作選單中,選取 新增項目參考

    [參考管理員] 對話框隨即開啟。

  2. 在左窗格中,展開 [專案],然後選取 [方案]。 在中間窗格中,選取 [QuickDate旁的複選框,然後選取 [確定]

    已新增對 QuickDate 項目的參考。

    [方案總管] 的螢幕快照,其中顯示Visual Studio 2019中的項目參考。

  1. [方案總管]中,以滑鼠右鍵按兩下 QuickTest 專案的 [參考] 節點。 從操作功能表中,選取 [[新增參考]。

  2. 在 [參考管理員] 對話框中,選取 [專案]。 在中間窗格中,選取 [QuickDate]旁的複選框,然後選取 [確定]

    QuickDate 專案的參考出現在 [方案總管]中的 QuickTest 專案下。

    顯示項目參考的方案總管螢幕快照。

新增測試程序代碼

  1. 現在,將測試程式代碼新增至 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 專案,以修正此錯誤。

  2. Calendar.cs 檔案中,使用語句 新增下列 ,並將 屬性新增至檔案頂端,以解決測試專案中的錯誤。

    using System.Runtime.CompilerServices;
    
    [assembly: InternalsVisibleTo("QuickTest")]
    

    Calendar.cs 程式代碼看起來應該像下列螢幕快照:

    顯示 C Sharp 程式代碼的螢幕快照。

    顯示 C Sharp 程式代碼的螢幕快照。

執行單元測試

若要檢查單元測試是否正常運作,請從功能表列選擇 [測試]>[執行所有測試][測試總管] 視窗隨即開啟,您應該會看到 TestGetCurrentDate 測試通過。

顯示已通過測試的測試總管螢幕快照。

顯示測試總管與通過測試的螢幕快照。

提示

您也可以從功能表欄選擇 [測試>測試總管],以開啟 [測試總管]

項目屬性

包含 InternalsVisibleToAttribute 屬性之 Calendar.cs 檔案中的行會參考 QuickTest 專案的元件名稱或檔名。 元件名稱不一定與項目名稱相同。 若要尋找專案的元件名稱,請使用專案屬性。 屬性頁包含項目的各種設定。

  1. 在 [方案總管]中,以滑鼠右鍵按兩下 [QuickTest 專案,然後選取 [屬性],或 選取專案,然後按 AltEnter

    [屬性頁 為]項目開啟至 [應用程式] 索引標籤。QuickTest 項目的 組件名稱 確實是 QuickTest

    如有需要,您可以在這裡變更名稱。 當您建置測試專案時,產生的二進位檔名稱會從 QuickTest.dll 變更為 <NewName>.dll

    顯示項目屬性的螢幕快照。

  2. 探索專案屬性頁面的其他一些索引標籤,例如 建置除錯。 不同類型的專案有不同的索引標籤。