00. 目录

文章目录

  • 00. 目录
  • 01. 概述
  • 02. 创建解决方案
  • 03. 添加项目
  • 04. 向项目添加一个项
  • 05. 添加第二个项目
  • 06. 添加项目引用
  • 07. 添加测试代码
  • 08. 项目属性
  • 09. 附录

01. 概述

解决方案是一个容器,用于组织一个或多个相关的代码项目,例如,一个类库项目和一个对应的测试项目。 我们会介绍项目的属性和其中包含的一些文件。 此外,我们还会在一个项目中创建对另一项目的引用。

尽管其名称如此,但解决方案并不是“答案”。 解决方案仅仅是 Visual Studio 用来组织一个或多个相关项目的容器。 在 Visual Studio 中打开解决方案时,它会自动加载其中包含的所有项目。

02. 创建解决方案

我们先创建一个空的解决方案。 对 Visual Studio 有一定了解后,可能就不会经常创建空的解决方案。 在 Visual Studio 中创建新项目时,如果没有打开的解决方案,它会自动创建一个解决方案来存放项目。

  1. 打开 Visual Studio。

  2. 在“开始”窗口中,选择“创建新项目”。

  3. 在“创建新项目”页上,在搜索框中输入“空白解决方案”,选择“空白解决方案”模板,然后选择“下一步” 。

  4. 将解决方案命名为“QuickSolution”,然后选择“创建” 。

    解决方案将显示在 Visual Studio 窗口右侧的解决方案资源管理器中 。 你可能会经常使用“解决方案资源管理器”来浏览项目的内容 。

温馨提示

如果你安装了多个工作负载,那么“空白解决方案”模板可能不会出现在搜索结果列表的顶部。 尝试滚动到列表的“基于你搜索的其他结果”部分。 它应该出现在那里。

03. 添加项目

现在我们将第一个项目添加到解决方案。 先从空项目开始,将所需项添加到项目中。

  1. 在“解决方案资源管理器”中的“解决方案 ‘QuickSolution’”的右键菜单或上下文菜单中,依次选择“添加”>“新建项目” 。

    随即打开显示“添加新项目”的对话框 。

  2. 在顶部的搜索框中输入文本“空”,然后在“语言”下选择“C#”。

  3. 然后选择“空项目 (.NET Framework)”模板并选择“下一步” 。

  4. 将项目命名为“QuickDate”,然后选择“创建” 。

    随后名为“QuickDate”的项目出现在“解决方案资源管理器”中的解决方案下 。 目前它包含一个名为“App.config”的文件 。

备注

如果没有看到“空项目(.NET Framework)”模板,则需要安装 .NET 桌面开发 Visual Studio 工作负载 。 Visual Studio 使用基于工作负载的安装旨在仅安装所执行的开发类型需要的组件。

在创建新项目时安装新工作负载的简便方法是,在显示“未找到你要查找的内容”的文本下选择“安装更多工具和功能”链接 。 在“Visual Studio 安装程序”启动后,选择“.NET 桌面开发”工作负载,再单击“修改”按钮 。

04. 向项目添加一个项

我们有一个空项目。 我们来添加代码文件。

  1. 在“解决方案资源管理器”中的“QuickDate”项目的右键菜单或上下文菜单中,依次选择“添加” > “新建项” 。

    此时将打开“添加新项”对话框。

  2. 展开“Visual C# 项”,然后选择“代码” 。 在中间窗格中,选择“类”项模板。 将类命名为“Calendar”,然后选择“添加”按钮 。

    名为“Calendar.cs”的文件已添加到项目。 末尾的 .cs 是 C# 代码文件的文件扩展名。 文件出现在“解决方案资源管理器”中的可视项目层次结构中,其内容在编辑器中打开。

  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 来运行该程序,即可看到程序将今天的日期打印到控制台(或标准输出)窗口 。

05. 添加第二个项目

包含多个项目的解决方案很常见,而且这些项目通常相互引用。 解决方案中的一些项目可能是类库,可能是可执行应用程序,也可能是单元测试项目或网站。

我们来向解决方案添加单元测试项目。 这次我们从项目模板开始,所以不需要向项目添加额外的代码文件。

  1. 在“解决方案资源管理器”中的“解决方案 ‘QuickSolution’”的右键菜单或上下文菜单中,依次选择“添加” > “新建项目” 。

  2. 在“添加新项目”对话框中,在顶部的搜索框输入文本“单元测试”,然后在“语言”下选择“C#”。

  3. 选择“MSTest 测试项目(.NET Core)”项目模板,然后选择“下一步” 。

  4. 将项目命名为“QuickTest”,然后选择“创建” 。

    第二个项目已添加到“解决方案资源管理器”,且编辑器中打开了名为 UnitTest1.cs 的文件。

06. 添加项目引用

我们将使用新的单元测试项目测试“QuickDate”项目中的方法,因此需要添加对该项目的引用。 创建引用会在两个项目间创建生成依赖关系,这意味着生成解决方案时,会先生成“QuickDate”,再生成“QuickTest”。

  1. 选择“QuickTest”项目中的“依赖关系”节点,然后在右键菜单或上下文菜单中选择“添加项目引用…” 。

    打开“引用管理器”对话框。

  2. 在左侧窗格中,展开“项目”,然后选择“解决方案” 。 在中间窗格中,选择“QuickDate”旁的复选框,然后选择“确定” 。

    已添加对“QuickDate”项目的引用。

07. 添加测试代码

  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. 返回 QuickDate 项目,打开 Calendar.cs 文件(如果它尚未打开)。 将以下 using 语句和 InternalsVisibleToAttribute 属性添加到文件顶部以解决测试项目中的错误。

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

代码文件应如下所示:

08. 项目属性

包含 InternalsVisibleToAttribute 属性的 Calendar.cs 文件中的行引用了“QuickTest”项目的程序集名称(文件名)。 程序集名称可能不会始终与项目名称相同。 若要查看项目的程序集名称,请打开项目属性。

  1. 在“解决方案资源管理器”中,选择“QuickTest”项目。 在右键菜单或上下文菜单中,选择“属性”,或只按 Alt+Enter 即可。

    项目的“属性页”随即在“应用程序”选项卡上打开。属性页包含项目的各种设置。 请注意,“QuickTest”项目的程序集名称确实为“QuickTest”。 如果想要更改,可在此处更改。 随后,在生成测试项目时,生成的二进制文件的名称将从“QuickTest.dll”更改为所选择的名称。

  2. 了解项目属性页的其他选项卡,例如“生成”和“调试”。 这些选项卡对不同类型的项目是不同的。

09. 附录

【C++】Visual Studio教程(三) - 项目和解决方案相关推荐

  1. visual studio(vs)中项目解决方案的目录组织安排

    visual studio(vs)中项目解决方案的目录组织安排 参考文章: (1)visual studio(vs)中项目解决方案的目录组织安排 (2)https://www.cnblogs.com/ ...

  2. 使用Visual Studio建立网站项目

    使用Visual Studio建立网站项目 第一步.依次点击文件->新建->项目(不是网站) 第二步.选择要新建的项目类型 在下图中把易错的地方已经圈出来了,注意不要选择其他的,选择空We ...

  3. 【Qt】Visual Studio编译Qt项目报Qt Version错误

    00. 目录 文章目录 00. 目录 01. 问题描述 02. 开发环境 03. 问题分析 04. 问题解决 05. 附录 01. 问题描述 使用Visual Studio编译Qt项目时候,报以下错误 ...

  4. Visual Studio Code打开项目

    Visual Studio Code打开项目:

  5. 2. C++ Visual Studio中同一个项目包含多个有main函数的源文件怎么分别运行?

    C++编程问题 C++编程问题-目录 2. C++ Visual Studio中同一个项目包含多个有main函数的源文件怎么分别运行? C++编程问题-目录 2. C++ Visual Studio中 ...

  6. 【C++】Visual Studio教程(十一) -解决方案和项目

    00. 目录 文章目录 00. 目录 01. 项目 02. 项目文件 03. 创建新项目 04. 解决方案 05. 解决方案文件 06. 解决方案文件夹 07. 解决方案资源管理器 08. 附录 01 ...

  7. 使用Visual Studio编译Qt项目出现“E1696 无法打开Qt源文件”的解决方案,亲测可行

    最近别人给我发了一个他的Qt项目,在我电脑Visual Studio上死活运行不成功,报错部分如下图所示:E1696 无法打开源文件 xxx 折腾许久,终于发现了原因orz- 不过在这之前建议你先检查 ...

  8. 【C++】Visual Studio教程(一)-概述

    00. 目录 文章目录 00. 目录 01. 简介 02. 版本 03. 高效性方面的常用功能 04. 使用重构和 IntelliSense 05. 调试代码 06. 自定义 Visual Studi ...

  9. 通过Visual Studio 2005的项目模板来加速开发过程

    page by Ameet Phadnis Feedback     简介: 记得在我第一次做项目的时候,我就在尝试找出一种方法来提高项目开始的效率(jump start my projects).在 ...

最新文章

  1. 奶牛排序 cow sort 置换群
  2. java备忘录模式应用场景_图解Java设计模式之备忘录模式
  3. ant Design Pro 登录状态管理
  4. modules not found(模块未找到)的解决方案
  5. SQL Server 6.5 如何升级到SQL Server 2000—以前原创(二)
  6. Choose the best route
  7. 用scikit-learn学习主成分分析(PCA)
  8. 涉密文件检查工具_深圳龙华资料文件销毁粉碎销毁资料文件公司一览表
  9. vs怎么写html5页面,怎么使用vscode写html5
  10. 华为Mate30系列诠释真旗舰:9月26日在国内正式发布
  11. NET 自定义配置文件 Configuration
  12. python 帮助文档下载地址
  13. List of Algorithms
  14. 计算机if函数的作用,if函数的使用方法
  15. Flink1.12源码解读——Checkpoint详细执行过程
  16. 商业方向的大数据专业_工业大数据应用的三大挑战和五大商业趋势
  17. 学习了pr后的收获_我的PR小结
  18. fastjson基本使用
  19. 二、文字转成图片,图片上写字
  20. C-V2X 与智能车路协同技术 的深度融合

热门文章

  1. 人与计算机的未来_身边的很多人都在学习计算机,学习计算机到底能带来哪些好处...
  2. 信息传递服务器,AJAX的与服务器之间的信息传递原理(初学)
  3. 年龄测试计算器软件,抖音很火的年龄计算器
  4. android socket ppt,socket網路設計.ppt
  5. java中从str1中删除所有str2_Java中str1.equals(str2)和str1==str2的区别
  6. python requests请求失败重试_Python Requests.post()请求失败时的retry设置
  7. S2SH框架入门之使用struts2
  8. javascript 定义类(转载)
  9. easy-ui表单校验---针对单个字段,多重校验(有参数校验+无参数检验)
  10. 1.0Nvm环境配置