我是荔园微风,作为一名在IT界整整25年的老兵,看到不少初学者在学习编程语言的过程中如此的痛苦,我决定做点什么,下面我就重点讲讲微软.NET6开发中解决方案和项目的概念。我将介绍 Visual Studio 2022的解决方案和项目的结构及组成。
解决方案是用于集中统一管理一组具有相关性的项目的Visual Studio工程结构。有时一个复杂的工程无法在一个项目中完成编写,需要分解为多个项目,为了方便管理这个工程的多个项目,便产生了解决方案。
一个解决方案对应一个SLN文件,它是一个文本文件,包含一组描述解决方案对应的VS版本和所管理项目的相关信息的文本。新建项目时默认会同时新建一个解决方案,可见VS的工程管理是以解决方案为基础进行的。同一个解决方案的项目一般会放在SLN文件所在的文件夹中,以便于源代码版本管理工具进行管理。
项目是一组具有紧密关联的代码和相关资源的集合,也是编译生成的基本单位。
一个项目会被编译为一个程序集(DLL)或应用程序(EXE)。一个项目对应一个csproj文件,它是一个XML文本文件,包含一组描述项目类型、项目信息、所包含的代码和相关资源的一系列XML节点。同一个项目的相关文件一般会放在csproj文件所在的文件夹中。
创建解决方案和项目
下面来说一说解决方案和项目的创建方法。创建解决方案和项目主要有以下两种方法:
(1)新建项目时让Visual Studio自动创建一个解决方案:默认情况下相当于创建空白解决方案,之后继续用解决方案名称创建一个同名项目放到解决方案文件夹中。
下面说一下具体的操作。
1。打开VS
2。在启动窗口中单击创建新项目
3。单击文件
4。单击新建
5。单击项目
6。选择项目类型
7。编辑项目名称和解决方案名称,可以取一样的名字
8。单击下一步,项目和对应的解决方案将同时创建完成
(2)新建空白解决方案:使用这种方法可以创建一个没有项目的空白解决方案,之后可以继续创建项目。实际上相当于创建一个以解决方案命名的文件夹,然后在文件夹中创建一个以解决方案命名的SLN文件。
下面说一下具体的操作。
1。在解决方案资源管理器的解决方案处右击
2。在菜单中选择添加
3。单击新建项目
4。选择项目类型
5。编辑项目名称
7。单击下一步,在解决方案中完成了项目的新建
引用其他项目和第三方程序包
下面来说一说这个问题,在应用开发中免不了要使用其他人写好的库,特别是一些比较基础和通用的功能,自己实现不仅要消耗额外的时间,还可能产生未知的bug。使用第三方库可以很好地避免这些问题。一个复杂的项目为了方便团队协作和积累基础代码,也会分割成多个项目。所以了解如何引用其他项目和第三方库是非常重要的。
(1)引用其他项目
引用其他项目的操作步骤如下:
1。在“解决方案资源管理器”的“解决方案”下展开要引用的其他项目,在“依赖项”处右击,在弹出的快捷菜单中选择“添加项目引用”命令
2。在“引用管理器”窗口中勾选要引用的项目,然后单击“确定”按钮
3。引用完成后在主项目的依赖项的项目中就可以看到引用的其他项目
(2)引用第三方程序包
两种方法引用程序包,
一种叫使用包管理器进行引用,如下:
1。在解决方案资源管理器的解决方案下展开要引用的第三方库的项目
2。在依赖项处右击,在弹出的菜单中选择管理nuget程序包
3。在浏览标签搜索要引用的库
4。在右侧选择要安装的版本并安装
5。之后在主项目的依赖项的包中可以看到引用的第三方库。
另一种叫使用包管理控制台进行引用,如下:
1。单击菜单的工具栏
2。点nuget包管理器
3。点程序包管理器控制台
4。打开程序包管理器控制台
5。通过nuget网页来搜索包
6。找到包后,复制package manager标签下的命令
7。粘贴到控制台运行就可以安装
(3)卸载程序包和项目引用
开发项目时可能需要卸载引用,例如调整引用关系或更换成相同功能的其他程序包。卸载引用有如下两种简单且常用的方法:
1)从项目的csproj文件中删除对应的“PackageReference”或“ProjectReference”节。
2)在解决方案资源管理器下的项目的依赖项中找到要卸载的程序包或项目,单击选中后按Delete键或者右击后在快捷菜单中选择移除命令。
.NET主要项目类型
.NET项目主要有:
控制台应用(Console App)
ASP.NET Core Web应用
.NET标准库(.NETStandard Library)
.NET库(.NET Library)
其中.NET标准库2.0版本可以在.NET Framework4.6或更高版本的项目中使用,是泛用性较好的.NET项目类型。
从.NETCore3.0开始,又增加了.NET WinForm桌面应用和.NET WPF桌面应用项目,不过这两种项目只能在 Windows系统中运行,不具备.NET跨平台的能力。
.NET6推出了新的跨平台图形界面框架Maui。
.NET库项目由.NET类和其他嵌入式资源组成,这些类无法直接在系统中运行,只能直接或间接地通过.NET应用项目来使用。它就像一个工具箱,存放着各种工具类,等待着应用项目去使用。
.NET应用项目本质上和库项目一样,但是编译器会为应用项目额外添加一些启动信息,.NET在运行时可以根据这些信息创建进程并运行其中的启动代码运行应用。
.NET库只能被相同或更高版本且体系结构兼容的.NET项目引用,无法在.NET Framework中使用。.NET库与.NET标准库的主要区别在于能使用特定.NET版本框架的API,这也是其兼容性较差的原因。除非项目依赖于这些API,否则推荐优先使用.NET标准库。
解决方案和项目文件解析
解决方案文件
如下是前面操作演示的解决方案文件:
1. Microsoft Visual Studio Solution File, Format Version 12.00
作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。