【C++】Visual Studio教程(三) - 项目和解决方案
00. 目錄
文章目錄
- 00. 目錄
- 01. 概述
- 02. 創(chuàng)建解決方案
- 03. 添加項(xiàng)目
- 04. 向項(xiàng)目添加一個(gè)項(xiàng)
- 05. 添加第二個(gè)項(xiàng)目
- 06. 添加項(xiàng)目引用
- 07. 添加測(cè)試代碼
- 08. 項(xiàng)目屬性
- 09. 附錄
01. 概述
解決方案是一個(gè)容器,用于組織一個(gè)或多個(gè)相關(guān)的代碼項(xiàng)目,例如,一個(gè)類(lèi)庫(kù)項(xiàng)目和一個(gè)對(duì)應(yīng)的測(cè)試項(xiàng)目。 我們會(huì)介紹項(xiàng)目的屬性和其中包含的一些文件。 此外,我們還會(huì)在一個(gè)項(xiàng)目中創(chuàng)建對(duì)另一項(xiàng)目的引用。
盡管其名稱(chēng)如此,但解決方案并不是“答案”。 解決方案僅僅是 Visual Studio 用來(lái)組織一個(gè)或多個(gè)相關(guān)項(xiàng)目的容器。 在 Visual Studio 中打開(kāi)解決方案時(shí),它會(huì)自動(dòng)加載其中包含的所有項(xiàng)目。
02. 創(chuàng)建解決方案
我們先創(chuàng)建一個(gè)空的解決方案。 對(duì) Visual Studio 有一定了解后,可能就不會(huì)經(jīng)常創(chuàng)建空的解決方案。 在 Visual Studio 中創(chuàng)建新項(xiàng)目時(shí),如果沒(méi)有打開(kāi)的解決方案,它會(huì)自動(dòng)創(chuàng)建一個(gè)解決方案來(lái)存放項(xiàng)目。
打開(kāi) Visual Studio。
在“開(kāi)始”窗口中,選擇“創(chuàng)建新項(xiàng)目”。
在“創(chuàng)建新項(xiàng)目”頁(yè)上,在搜索框中輸入“空白解決方案”,選擇“空白解決方案”模板,然后選擇“下一步” 。
將解決方案命名為“QuickSolution”,然后選擇“創(chuàng)建” 。
解決方案將顯示在 Visual Studio 窗口右側(cè)的解決方案資源管理器中 。 你可能會(huì)經(jīng)常使用“解決方案資源管理器”來(lái)瀏覽項(xiàng)目的內(nèi)容 。
溫馨提示
如果你安裝了多個(gè)工作負(fù)載,那么“空白解決方案”模板可能不會(huì)出現(xiàn)在搜索結(jié)果列表的頂部。 嘗試滾動(dòng)到列表的“基于你搜索的其他結(jié)果”部分。 它應(yīng)該出現(xiàn)在那里。
03. 添加項(xiàng)目
現(xiàn)在我們將第一個(gè)項(xiàng)目添加到解決方案。 先從空項(xiàng)目開(kāi)始,將所需項(xiàng)添加到項(xiàng)目中。
在“解決方案資源管理器”中的“解決方案 ‘QuickSolution’”的右鍵菜單或上下文菜單中,依次選擇“添加”>“新建項(xiàng)目” 。
隨即打開(kāi)顯示“添加新項(xiàng)目”的對(duì)話(huà)框 。
在頂部的搜索框中輸入文本“空”,然后在“語(yǔ)言”下選擇“C#”。
然后選擇“空項(xiàng)目 (.NET Framework)”模板并選擇“下一步” 。
將項(xiàng)目命名為“QuickDate”,然后選擇“創(chuàng)建” 。
隨后名為“QuickDate”的項(xiàng)目出現(xiàn)在“解決方案資源管理器”中的解決方案下 。 目前它包含一個(gè)名為“App.config”的文件 。
備注
如果沒(méi)有看到“空項(xiàng)目(.NET Framework)”模板,則需要安裝 .NET 桌面開(kāi)發(fā) Visual Studio 工作負(fù)載 。 Visual Studio 使用基于工作負(fù)載的安裝旨在僅安裝所執(zhí)行的開(kāi)發(fā)類(lèi)型需要的組件。
在創(chuàng)建新項(xiàng)目時(shí)安裝新工作負(fù)載的簡(jiǎn)便方法是,在顯示“未找到你要查找的內(nèi)容”的文本下選擇“安裝更多工具和功能”鏈接 。 在“Visual Studio 安裝程序”啟動(dòng)后,選擇“.NET 桌面開(kāi)發(fā)”工作負(fù)載,再單擊“修改”按鈕 。
04. 向項(xiàng)目添加一個(gè)項(xiàng)
我們有一個(gè)空項(xiàng)目。 我們來(lái)添加代碼文件。
在“解決方案資源管理器”中的“QuickDate”項(xiàng)目的右鍵菜單或上下文菜單中,依次選擇“添加” > “新建項(xiàng)” 。
此時(shí)將打開(kāi)“添加新項(xiàng)”對(duì)話(huà)框。
展開(kāi)“Visual C# 項(xiàng)”,然后選擇“代碼” 。 在中間窗格中,選擇“類(lèi)”項(xiàng)模板。 將類(lèi)命名為“Calendar”,然后選擇“添加”按鈕 。
名為“Calendar.cs”的文件已添加到項(xiàng)目。 末尾的 .cs 是 C# 代碼文件的文件擴(kuò)展名。 文件出現(xiàn)在“解決方案資源管理器”中的可視項(xiàng)目層次結(jié)構(gòu)中,其內(nèi)容在編輯器中打開(kāi)。
將 Calendar.cs 文件的內(nèi)容替換為以下代碼:
你無(wú)需了解代碼的作用,但是如果你想知道,可通過(guò)按 Ctrl+F5 來(lái)運(yùn)行該程序,即可看到程序?qū)⒔裉斓娜掌诖蛴〉娇刂婆_(tái)(或標(biāo)準(zhǔn)輸出)窗口 。
05. 添加第二個(gè)項(xiàng)目
包含多個(gè)項(xiàng)目的解決方案很常見(jiàn),而且這些項(xiàng)目通常相互引用。 解決方案中的一些項(xiàng)目可能是類(lèi)庫(kù),可能是可執(zhí)行應(yīng)用程序,也可能是單元測(cè)試項(xiàng)目或網(wǎng)站。
我們來(lái)向解決方案添加單元測(cè)試項(xiàng)目。 這次我們從項(xiàng)目模板開(kāi)始,所以不需要向項(xiàng)目添加額外的代碼文件。
在“解決方案資源管理器”中的“解決方案 ‘QuickSolution’”的右鍵菜單或上下文菜單中,依次選擇“添加” > “新建項(xiàng)目” 。
在“添加新項(xiàng)目”對(duì)話(huà)框中,在頂部的搜索框輸入文本“單元測(cè)試”,然后在“語(yǔ)言”下選擇“C#”。
選擇“MSTest 測(cè)試項(xiàng)目(.NET Core)”項(xiàng)目模板,然后選擇“下一步” 。
將項(xiàng)目命名為“QuickTest”,然后選擇“創(chuàng)建” 。
第二個(gè)項(xiàng)目已添加到“解決方案資源管理器”,且編輯器中打開(kāi)了名為 UnitTest1.cs 的文件。
06. 添加項(xiàng)目引用
我們將使用新的單元測(cè)試項(xiàng)目測(cè)試“QuickDate”項(xiàng)目中的方法,因此需要添加對(duì)該項(xiàng)目的引用。 創(chuàng)建引用會(huì)在兩個(gè)項(xiàng)目間創(chuàng)建生成依賴(lài)關(guān)系,這意味著生成解決方案時(shí),會(huì)先生成“QuickDate”,再生成“QuickTest”。
選擇“QuickTest”項(xiàng)目中的“依賴(lài)關(guān)系”節(jié)點(diǎn),然后在右鍵菜單或上下文菜單中選擇“添加項(xiàng)目引用…” 。
打開(kāi)“引用管理器”對(duì)話(huà)框。
在左側(cè)窗格中,展開(kāi)“項(xiàng)目”,然后選擇“解決方案” 。 在中間窗格中,選擇“QuickDate”旁的復(fù)選框,然后選擇“確定” 。
已添加對(duì)“QuickDate”項(xiàng)目的引用。
07. 添加測(cè)試代碼
現(xiàn)在我們向 C# 測(cè)試代碼文件添加測(cè)試代碼。 將 UnitTest1.cs 的內(nèi)容替換為以下代碼:
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());}} }你會(huì)看到某些代碼下出現(xiàn)紅色波浪線(xiàn)。 將測(cè)試項(xiàng)目設(shè)為“QuickDate”項(xiàng)目的友元程序集來(lái)解決此錯(cuò)誤。
返回 QuickDate 項(xiàng)目,打開(kāi) Calendar.cs 文件(如果它尚未打開(kāi))。 將以下 using 語(yǔ)句和 InternalsVisibleToAttribute 屬性添加到文件頂部以解決測(cè)試項(xiàng)目中的錯(cuò)誤。
代碼文件應(yīng)如下所示:
08. 項(xiàng)目屬性
包含 InternalsVisibleToAttribute 屬性的 Calendar.cs 文件中的行引用了“QuickTest”項(xiàng)目的程序集名稱(chēng)(文件名)。 程序集名稱(chēng)可能不會(huì)始終與項(xiàng)目名稱(chēng)相同。 若要查看項(xiàng)目的程序集名稱(chēng),請(qǐng)打開(kāi)項(xiàng)目屬性。
在“解決方案資源管理器”中,選擇“QuickTest”項(xiàng)目。 在右鍵菜單或上下文菜單中,選擇“屬性”,或只按 Alt+Enter 即可。
項(xiàng)目的“屬性頁(yè)”隨即在“應(yīng)用程序”選項(xiàng)卡上打開(kāi)。屬性頁(yè)包含項(xiàng)目的各種設(shè)置。 請(qǐng)注意,“QuickTest”項(xiàng)目的程序集名稱(chēng)確實(shí)為“QuickTest”。 如果想要更改,可在此處更改。 隨后,在生成測(cè)試項(xiàng)目時(shí),生成的二進(jìn)制文件的名稱(chēng)將從“QuickTest.dll”更改為所選擇的名稱(chēng)。
了解項(xiàng)目屬性頁(yè)的其他選項(xiàng)卡,例如“生成”和“調(diào)試”。 這些選項(xiàng)卡對(duì)不同類(lèi)型的項(xiàng)目是不同的。
09. 附錄
總結(jié)
以上是生活随笔為你收集整理的【C++】Visual Studio教程(三) - 项目和解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【C++】Visual Studio教程
- 下一篇: 【C++】Visual Studio教程