在本介绍性文章中,你将了解在 Visual Studio 中创建 solution 和 project的含义。 解决方案是用于组织一个或多个相关代码项目的容器,例如类库项目和相应的测试项目。 本文介绍项目的属性及其可以包含的一些文件。 还可以创建从一个项目到另一个项目的引用。
在本文中,你将从头开始构建解决方案和项目,以了解项目的概念。 在一般使用 Visual Studio 时,在创建新项目时,您可能会使用 Visual Studio 提供的各种项目模板之一。
注意
在 Visual Studio 中开发应用不需要解决方案和项目。 还可以打开包含代码的文件夹,并开始编码、生成和调试。
例如,如果克隆 GitHub 存储库,则它可能不包含Visual Studio项目和解决方案。 有关详细信息,请参阅不带项目或解决方案的Visual Studio中的 开发代码。
先决条件
- 您需要使用 Visual Studio 配合本文。 若要免费安装,请参阅 Visual Studio 下载。
解决方案和项目
尽管其名称,但解决方案不是 答案。 解决方案是Visual Studio用于组织一个或多个相关项目的容器。 在Visual Studio中打开解决方案时,它会自动加载解决方案包含的所有项目。
创建解决方案
若要开始探索,请创建一个空的解决方案。 了解Visual Studio后,可能不会发现自己经常创建空解决方案。 创建新项目时,如果尚未打开解决方案,Visual Studio会自动创建一个解决方案来容纳项目。
打开Visual Studio。
在开始窗口中,选择 创建新项目。
在 “创建新项目 ”窗口中,在搜索框中输入 空白解决方案 。 选择空白解决方案模板。 然后选择“下一步”。
屏幕截图显示了“创建新项目”窗口,其中搜索框中输入了“空白解决方案”,并选择了“空白解决方案”项目模板。
将解决方案命名 QuickSolution,然后选择 创建。
解决方案显示在解决方案资源管理器Visual Studio窗口右侧。 你可能经常使用 解决方案资源管理器 浏览项目的内容。
添加项目
现在,将第一个项目添加到解决方案。 添加一个空项目,并将所需的项添加到项目。
在解决方案资源管理器中的Solution 'QuickSolution'上右键单击或打开上下文菜单时,选择Add>New Project。
此时会打开一个对话框,显示 “添加新项目”。
在顶部的搜索框中输入文本empty,然后在所有语言下拉列表中选择Visual Basic。
选择 Empty Project (.NET Framework) 模板,然后选择 Next。
将项目命名为 QuickDate,然后选择创建。
名为 QuickDate 的项目显示在解决方案下方,解决方案资源管理器。 目前,它包含名为 App.config的单个文件。
注意
如果看不到 Empty Project (.NET Framework) 模板,则需要安装 .NET 桌面开发 Visual Studio workload。 Visual Studio使用基于工作负荷的安装来安装所需的组件,以便进行开发。
安装新工作负载的一种简单方法是选择“ 安装更多工具和功能 ”链接,其文本显示 “未找到要查找的内容?”。 启动Visual Studio安装程序后,选择.NET桌面开发工作负载,然后选择Modify按钮。
显示“创建新项目”窗口的屏幕截图,其中突出显示了“安装更多工具和功能”链接。
注意
如果看不到 Empty Project (.NET Framework) 模板,则需要安装 .NET 桌面开发 Visual Studio workload。 Visual Studio使用基于工作负荷的安装来安装所需的组件,以便进行开发。
安装新工作负载的一种简单方法是选择“ 安装更多工具和功能 ”链接,其文本显示 “未找到要查找的内容?”。 启动Visual Studio安装程序后,选择.NET桌面开发工作负载,然后选择Modify按钮。
向项目添加一个项
你有一个空项目。 现在添加代码文件。
在 解决方案资源管理器 中,右键单击 QuickDate 项目或在上下文菜单中选择 添加>新项。 此时将打开"添加新项"对话框。
首次添加项时,Visual Studio打开此对话框的紧凑视图。 若要查看整个对话框,请选择“ 显示所有模板”。
展开“常用项”,然后选择“代码”。 在中间窗格中,选择 类 项模板。 将类 命名为 Calendar。 然后选择“添加”。
将名为 Calendar.vb 的文件添加到项目中。 末尾的 .vb 是Visual Basic代码文件的文件扩展名。 该文件显示在 解决方案资源管理器 的视觉项目层次结构中。 其内容在编辑器中打开。
将 Calendar.vb 文件的内容替换为以下代码:
Class Calendar Public Shared Function GetCurrentDate() As Date Return DateTime.Now.Date End Function End Class类包含返回当前日期的单个函数 。
通过在 解决方案资源管理器 中双击 My Project打开项目属性。 在“应用程序”选项卡上,将 应用程序类型 更改为 类库。 若要成功生成项目,必须执行此步骤。
通过在
解决方案资源管理器 QuickDate0> 并选择Build 来生成项目。 “输出”窗口中会显示一条成功生成消息。
添加第二个项目
解决方案通常包含多个项目。 通常,这些项目相互引用。 解决方案中的某些项目可能是类库、一些可执行应用程序,有些可能是单元测试项目或网站。
将单元测试项目添加到解决方案。 从项目模板开始,因此无需向项目添加另一个代码文件。
在解决方案资源管理器中的Solution 'QuickSolution'上右键单击或打开上下文菜单时,选择Add>New Project。
在 “添加新项目 ”窗口中,在顶部的搜索框中输入文本 单元测试 。 然后在所有语言列表中选择Visual Basic。
选择 Unit Test Project (.NET Framework) 项目模板,然后选择 Next。
将项目命名为“QuickTest”,然后选择“创建”。
第二个项目将添加到 解决方案资源管理器。 在编辑器中打开名为 UnitTest1.vb 的文件。
添加项目引用
使用新的单元测试项目对 QuickDate 项目中的方法进行测试,因此需要添加引用到该项目。 该引用在两个项目之间创建一个 生成依赖项,这意味着在生成解决方案时,QuickDate 在 QuickTest之前生成。
选择“QuickTest”项目中的“引用”节点,然后在右键菜单或上下文菜单中选择“添加引用”。
屏幕截图,其中显示了 QuickTest 项目中“引用”节点的上下文菜单,其中选择了“添加引用”选项。
此时会打开 引用管理器 。
在左窗格中,展开 项目 并选择 解决方案。 在中间窗格中,选择 QuickDate 旁边的复选框,然后选择“ 确定”。
添加了对 QuickDate 项目的引用。
添加测试代码
现在,将测试代码添加到Visual Basic代码文件。 将 UnitTest1.vb 的内容替换为以下代码。
<TestClass()> Public Class UnitTest1 <TestMethod()> Public Sub TestGetCurrentDate() Assert.AreEqual(Date.Now.Date, QuickDate.Calendar.GetCurrentDate()) End Sub End Class你能在一些代码下看到红色波浪线。 通过将测试项目设置为 QuickDate 项目的友元程序集来修复此错误。
返回 QuickDate 项目,打开 Calendar.vb 文件(如果尚未打开)。 若要解决测试项目中的错误,请添加以下 Imports 语句 和 属性。
Imports System.Runtime.CompilerServices <Assembly: InternalsVisibleTo("QuickTest")>代码文件应如下所示:
“在添加 Imports 语句和 Assembly 属性行之后,截图显示了 Visual Basic 代码编辑器窗口中的 Calendar.vb 代码。”
项目属性
包含 属性的 文件中的行引用 QuickTest 项目的程序集名称(文件名)。 程序集名称可能并不总是与项目名称相同。 若要查找项目的程序集名称,请打开项目属性。
在 解决方案资源管理器 中,选择 QuickTest 项目。 在右键菜单或上下文菜单中,选择“属性”,或只按 AltEnter 即可。 还可以在 解决方案资源管理器 中双击 My Project。
项目的 属性页 会在 应用程序 选项卡上打开。属性页包含项目的各种设置。 QuickTest 项目的程序集名称确实为“QuickTest”。 如果要更改程序集名称,可以在此处完成更改。 然后,当你构建测试项目时,生成的二进制文件名称将从 QuickTest.dll 更改为你选择的名称。
显示 QuickTest 项目属性页的“应用程序”选项卡的屏幕截图,其中突出显示了“程序集名称”字段,值为 QuickTest。
了解项目属性页的其他选项卡,例如“编译”和“设置”。 对于不同类型的项目,这些选项卡不同。
(可选)运行测试
如果要检查单元测试是否正常工作,请从菜单栏中选择 测试运行所有测试。 此时会打开一个名为 “测试资源管理器” 的窗口。 应会看到 TestGetCurrentDate 测试通过。
Visual Studio中测试资源管理器的截图,显示 TestGetCurrentDate 测试已通过。
提示
如果 测试资源管理器 未自动打开,请在菜单中选择 “测试测试资源管理器”。
相关内容
若要进一步探索Visual Studio,请考虑按照其中一个 Visual Basic 教程创建应用。
以下资源可能也很有用:
- 创建项目和解决方案
- 管理项目和解决方案属性
- 管理项目中的引用
- 在 Visual Studio 中不使用项目或解决方案进行代码开发
- Visual Studio IDE概述