【C++】Visual Studio教程(三) - 项目和解决方案
00. 目录
文章目录
- 00. 目录
- 01. 概述
- 02. 创建解决方案
- 03. 添加项目
- 04. 向项目添加一个项
- 05. 添加第二个项目
- 06. 添加项目引用
- 07. 添加测试代码
- 08. 项目属性
- 09. 附录
01. 概述
解决方案是一个容器,用于组织一个或多个相关的代码项目,例如,一个类库项目和一个对应的测试项目。 我们会介绍项目的属性和其中包含的一些文件。 此外,我们还会在一个项目中创建对另一项目的引用。
尽管其名称如此,但解决方案并不是“答案”。 解决方案仅仅是 Visual Studio 用来组织一个或多个相关项目的容器。 在 Visual Studio 中打开解决方案时,它会自动加载其中包含的所有项目。
02. 创建解决方案
我们先创建一个空的解决方案。 对 Visual Studio 有一定了解后,可能就不会经常创建空的解决方案。 在 Visual Studio 中创建新项目时,如果没有打开的解决方案,它会自动创建一个解决方案来存放项目。
打开 Visual Studio。
在“开始”窗口中,选择“创建新项目”。
在“创建新项目”页上,在搜索框中输入“空白解决方案”,选择“空白解决方案”模板,然后选择“下一步” 。
将解决方案命名为“QuickSolution”,然后选择“创建” 。
解决方案将显示在 Visual Studio 窗口右侧的解决方案资源管理器中 。 你可能会经常使用“解决方案资源管理器”来浏览项目的内容 。
温馨提示
如果你安装了多个工作负载,那么“空白解决方案”模板可能不会出现在搜索结果列表的顶部。 尝试滚动到列表的“基于你搜索的其他结果”部分。 它应该出现在那里。
03. 添加项目
现在我们将第一个项目添加到解决方案。 先从空项目开始,将所需项添加到项目中。
在“解决方案资源管理器”中的“解决方案 ‘QuickSolution’”的右键菜单或上下文菜单中,依次选择“添加”>“新建项目” 。
随即打开显示“添加新项目”的对话框 。
在顶部的搜索框中输入文本“空”,然后在“语言”下选择“C#”。
然后选择“空项目 (.NET Framework)”模板并选择“下一步” 。
将项目命名为“QuickDate”,然后选择“创建” 。
随后名为“QuickDate”的项目出现在“解决方案资源管理器”中的解决方案下 。 目前它包含一个名为“App.config”的文件 。
备注
如果没有看到“空项目(.NET Framework)”模板,则需要安装 .NET 桌面开发 Visual Studio 工作负载 。 Visual Studio 使用基于工作负载的安装旨在仅安装所执行的开发类型需要的组件。
在创建新项目时安装新工作负载的简便方法是,在显示“未找到你要查找的内容”的文本下选择“安装更多工具和功能”链接 。 在“Visual Studio 安装程序”启动后,选择“.NET 桌面开发”工作负载,再单击“修改”按钮 。
04. 向项目添加一个项
我们有一个空项目。 我们来添加代码文件。
在“解决方案资源管理器”中的“QuickDate”项目的右键菜单或上下文菜单中,依次选择“添加” > “新建项” 。
此时将打开“添加新项”对话框。
展开“Visual C# 项”,然后选择“代码” 。 在中间窗格中,选择“类”项模板。 将类命名为“Calendar”,然后选择“添加”按钮 。
名为“Calendar.cs”的文件已添加到项目。 末尾的 .cs 是 C# 代码文件的文件扩展名。 文件出现在“解决方案资源管理器”中的可视项目层次结构中,其内容在编辑器中打开。
将 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 来运行该程序,即可看到程序将今天的日期打印到控制台(或标准输出)窗口 。
05. 添加第二个项目
包含多个项目的解决方案很常见,而且这些项目通常相互引用。 解决方案中的一些项目可能是类库,可能是可执行应用程序,也可能是单元测试项目或网站。
我们来向解决方案添加单元测试项目。 这次我们从项目模板开始,所以不需要向项目添加额外的代码文件。
在“解决方案资源管理器”中的“解决方案 ‘QuickSolution’”的右键菜单或上下文菜单中,依次选择“添加” > “新建项目” 。
在“添加新项目”对话框中,在顶部的搜索框输入文本“单元测试”,然后在“语言”下选择“C#”。
选择“MSTest 测试项目(.NET Core)”项目模板,然后选择“下一步” 。
将项目命名为“QuickTest”,然后选择“创建” 。
第二个项目已添加到“解决方案资源管理器”,且编辑器中打开了名为 UnitTest1.cs 的文件。
06. 添加项目引用
我们将使用新的单元测试项目测试“QuickDate”项目中的方法,因此需要添加对该项目的引用。 创建引用会在两个项目间创建生成依赖关系,这意味着生成解决方案时,会先生成“QuickDate”,再生成“QuickTest”。
选择“QuickTest”项目中的“依赖关系”节点,然后在右键菜单或上下文菜单中选择“添加项目引用…” 。
打开“引用管理器”对话框。
在左侧窗格中,展开“项目”,然后选择“解决方案” 。 在中间窗格中,选择“QuickDate”旁的复选框,然后选择“确定” 。
已添加对“QuickDate”项目的引用。
07. 添加测试代码
现在我们向 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”项目的友元程序集来解决此错误。
返回 QuickDate 项目,打开 Calendar.cs 文件(如果它尚未打开)。 将以下 using 语句和 InternalsVisibleToAttribute 属性添加到文件顶部以解决测试项目中的错误。
using System.Runtime.CompilerServices;[assembly: InternalsVisibleTo("QuickTest")]
代码文件应如下所示:
08. 项目属性
包含 InternalsVisibleToAttribute 属性的 Calendar.cs 文件中的行引用了“QuickTest”项目的程序集名称(文件名)。 程序集名称可能不会始终与项目名称相同。 若要查看项目的程序集名称,请打开项目属性。
在“解决方案资源管理器”中,选择“QuickTest”项目。 在右键菜单或上下文菜单中,选择“属性”,或只按 Alt+Enter 即可。
项目的“属性页”随即在“应用程序”选项卡上打开。属性页包含项目的各种设置。 请注意,“QuickTest”项目的程序集名称确实为“QuickTest”。 如果想要更改,可在此处更改。 随后,在生成测试项目时,生成的二进制文件的名称将从“QuickTest.dll”更改为所选择的名称。
了解项目属性页的其他选项卡,例如“生成”和“调试”。 这些选项卡对不同类型的项目是不同的。
09. 附录
【C++】Visual Studio教程(三) - 项目和解决方案相关推荐
- visual studio(vs)中项目解决方案的目录组织安排
visual studio(vs)中项目解决方案的目录组织安排 参考文章: (1)visual studio(vs)中项目解决方案的目录组织安排 (2)https://www.cnblogs.com/ ...
- 使用Visual Studio建立网站项目
使用Visual Studio建立网站项目 第一步.依次点击文件->新建->项目(不是网站) 第二步.选择要新建的项目类型 在下图中把易错的地方已经圈出来了,注意不要选择其他的,选择空We ...
- 【Qt】Visual Studio编译Qt项目报Qt Version错误
00. 目录 文章目录 00. 目录 01. 问题描述 02. 开发环境 03. 问题分析 04. 问题解决 05. 附录 01. 问题描述 使用Visual Studio编译Qt项目时候,报以下错误 ...
- Visual Studio Code打开项目
Visual Studio Code打开项目:
- 2. C++ Visual Studio中同一个项目包含多个有main函数的源文件怎么分别运行?
C++编程问题 C++编程问题-目录 2. C++ Visual Studio中同一个项目包含多个有main函数的源文件怎么分别运行? C++编程问题-目录 2. C++ Visual Studio中 ...
- 【C++】Visual Studio教程(十一) -解决方案和项目
00. 目录 文章目录 00. 目录 01. 项目 02. 项目文件 03. 创建新项目 04. 解决方案 05. 解决方案文件 06. 解决方案文件夹 07. 解决方案资源管理器 08. 附录 01 ...
- 使用Visual Studio编译Qt项目出现“E1696 无法打开Qt源文件”的解决方案,亲测可行
最近别人给我发了一个他的Qt项目,在我电脑Visual Studio上死活运行不成功,报错部分如下图所示:E1696 无法打开源文件 xxx 折腾许久,终于发现了原因orz- 不过在这之前建议你先检查 ...
- 【C++】Visual Studio教程(一)-概述
00. 目录 文章目录 00. 目录 01. 简介 02. 版本 03. 高效性方面的常用功能 04. 使用重构和 IntelliSense 05. 调试代码 06. 自定义 Visual Studi ...
- 通过Visual Studio 2005的项目模板来加速开发过程
page by Ameet Phadnis Feedback 简介: 记得在我第一次做项目的时候,我就在尝试找出一种方法来提高项目开始的效率(jump start my projects).在 ...
最新文章
- 奶牛排序 cow sort 置换群
- java备忘录模式应用场景_图解Java设计模式之备忘录模式
- ant Design Pro 登录状态管理
- modules not found(模块未找到)的解决方案
- SQL Server 6.5 如何升级到SQL Server 2000—以前原创(二)
- Choose the best route
- 用scikit-learn学习主成分分析(PCA)
- 涉密文件检查工具_深圳龙华资料文件销毁粉碎销毁资料文件公司一览表
- vs怎么写html5页面,怎么使用vscode写html5
- 华为Mate30系列诠释真旗舰:9月26日在国内正式发布
- NET 自定义配置文件 Configuration
- python 帮助文档下载地址
- List of Algorithms
- 计算机if函数的作用,if函数的使用方法
- Flink1.12源码解读——Checkpoint详细执行过程
- 商业方向的大数据专业_工业大数据应用的三大挑战和五大商业趋势
- 学习了pr后的收获_我的PR小结
- fastjson基本使用
- 二、文字转成图片,图片上写字
- C-V2X 与智能车路协同技术 的深度融合
热门文章
- 人与计算机的未来_身边的很多人都在学习计算机,学习计算机到底能带来哪些好处...
- 信息传递服务器,AJAX的与服务器之间的信息传递原理(初学)
- 年龄测试计算器软件,抖音很火的年龄计算器
- android socket ppt,socket網路設計.ppt
- java中从str1中删除所有str2_Java中str1.equals(str2)和str1==str2的区别
- python requests请求失败重试_Python Requests.post()请求失败时的retry设置
- S2SH框架入门之使用struts2
- javascript 定义类(转载)
- easy-ui表单校验---针对单个字段,多重校验(有参数校验+无参数检验)
- 1.0Nvm环境配置