專案和解決方案簡介

這篇簡介文章探討在 Visual Studio 中建立「解決方案」和「專案」的意義。 解決方案是用來組織一或多個相關程式碼專案的容器,例如類別庫專案和對應的測試專案。

您將從頭建構解決方案和專案,作為了解專案概念的教育練習。 一般通常會使用 Visual Studio 專案範本來建立新專案。 您也會查看專案的屬性及其可能包含的一些檔案,並建立從一個專案對另一個專案的參考。

注意

在 Visual Studio 中開發應用程式不需要解決方案和專案。 您可以直接開啟包含程式碼的資料夾,並開始編碼、建置和偵錯。 例如,複製的 GitHub 存放庫可能不會包含 Visual Studio 專案和解決方案。 如需詳細資訊,請參閱在 Visual Studio 中不使用專案或方案來開發程式碼

如果您尚未安裝 Visual Studio 2019,請前往 Visual Studio 下載頁面免費進行安裝。

如果您尚未安裝 Visual Studio,請前往 Visual Studio 下載頁面免費進行安裝。

方案和專案

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

建立解決方案

請建立空白解決方案以開始探索。 在您了解 Visual Studio 後,就可能不會經常建立空白解決方案了。 當您建立新專案時,Visual Studio 會自動建立專案的解決方案,除非解決方案已開啟。

  1. 開啟 Visual Studio。

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

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

    Screenshot that shows a Blank Solution template selected in Visual Studio 2019.

    提示

    如果您安裝了數個工作負載,則 [空白解決方案] 範本可能不會出現在搜尋結果清單的頂端。 嘗試捲動至清單的 [依據搜尋內容找到的其他結果] 區段。 空白解決方案應該會出現在該處。

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

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

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

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

    Screenshot that shows a Blank Solution template selected in Visual Studio.

    提示

    如果您安裝了數個工作負載,則 [空白解決方案] 範本可能不會出現在搜尋結果清單的頂端。 嘗試捲動至 [依據搜尋內容找到的其他結果] 以尋找範本。

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

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

新增專案

現在,請將您的第一個專案新增至解決方案。 先建立空白專案,再新增您需要的項目。

  1. 在 [方案總管] 中,從 [解決方案 'QuickSolution'] 的右鍵功能表或操作功能表選取 [新增]>[新增專案]

    隨即開啟一個對話方塊,表示要 [新增專案]

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

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

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

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

    注意

    若未看到 [空白專案 (.NET Framework)] 範本,您必須安裝 [.NET 桌面開發] Visual Studio 工作負載。 Visual Studio 會使用工作負載型安裝,僅安裝您執行的開發類型所需的元件。

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

    Screenshot that shows the Open Visual Studio Installer link.

  1. 在 [方案總管] 中以滑鼠右鍵按一下 [解決方案 'QuickSolution'],然後從操作功能表中選取 [新增]>[新增專案]

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

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

    注意

    Visual Studio 會使用工作負載型安裝,僅安裝您執行的開發類型所需的元件。 若未看到 [空白專案 (.NET Framework)] 範本,您必須安裝 [.NET 桌面開發] Visual Studio 工作負載。

    有一個簡單的方式可讓您在建立新專案時安裝新的工作負載,就是在顯示 [找不到您要尋找的項目嗎?] 的文字底下,選取 [安裝更多工具與功能] 連結。 在 Visual Studio 安裝程式中,選取 [.NET 桌面開發] 工作負載,然後選取 [修改]

    Screenshot that shows the Open Visual Studio Installer link.

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

    QuickDate 專案會出現在 [方案總管] 中的解決方案底下。 專案包含 References 節點和名為 App.config 的單一檔案。

將項目新增至專案

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

  1. 在 [方案總管] 中,從 [QuickDate] 專案的右鍵功能表或操作功能表選取 [新增]>[新增項目]

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

  2. 展開 [Visual C# 項目],然後選取 [程式碼]。 在中間窗格,選取 [類別] 項目範本。 在 [名稱] 底下鍵入行事曆,然後選取 [新增]

    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+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 的檔案。

    Screenshot that shows Solution Explorer with two projects.

  1. 在 [方案總管] 中,從 [解決方案 'QuickSolution'] 的右鍵功能表或操作功能表選取 [新增]>[新增專案]

  2. 在 [新增專案] 對話方塊的頂端搜尋方塊中鍵入單元測試,然後在 [所有語言] 底下選取 [C#]

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

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

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

    Screenshot that shows Solution Explorer with two projects.

新增專案參考

您將使用新的單元測試專案來測試您 QuickDate 專案中的方法,因此您必須將 QuickDate 的參考新增至 QuickTest 專案。 新增參考會建立兩個專案之間的組建相依性,表示在建置解決方案時會先建置 QuickDate 再建置 QuickTest

  1. 選取 QuickTest 專案中的 [相依性] 節點,然後從右鍵功能表或操作功能表中選取 [新增專案參考]

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

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

    隨即新增 QuickDate 專案的參考。

    A screenshot of Solution Explorer showing a project reference in Visual Studio 2019.

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

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

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

    A screenshot of Solution Explorer showing a project reference.

新增測試程式碼

  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 專案的 friend 組件

  2. Calendar.cs 檔案中,將下列 using 陳述式InternalsVisibleToAttribute 屬性新增至檔案頂端,以解決測試專案中的錯誤。

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

    Calendar.cs 程式碼應該會類似於下列螢幕擷取畫面:

    Screenshot that shows C Sharp code.

    Screenshot that shows C Sharp code.

執行單元測試

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

Screenshot that shows Test Explorer with a passed test.

Screenshot that shows Test Explorer with a passed test.

提示

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

專案屬性

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

  1. 在 [方案總管] 中 ,以滑鼠右鍵按一下 QuickTest 專案並選取 [屬性],或選取專案然後按 Alt+Enter

    專案的「屬性頁」會在 [應用程式] 索引標籤中開啟。QuickTest 專案的 [組件名稱] 確實是 QuickTest

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

    Screenshot that shows project properties.

    Screenshot that shows project properties.

  2. 探索專案屬性頁的一些其他索引標籤 (例如 [建置] 和 [偵錯])。 不同專案類型的這些索引標籤不同。

另請參閱