两步实现Visual Studio创建支持.Net多版本的类库

在项目的迭代过程中,总会遇到新老项目过渡的问题,有的过渡甚至很长。小编曾经任职过的一个家公司,项目的版本有.NET 4.5的webfrom项目,有.NET3.1的MVC项目,还有.NET5的基于API的前后端分离项目。这些项目由于版本的问题,他们程序之间的控件基本不能兼容,唯一可能做到兼容的就类库,.NET Core 以上版本的.NET Standard 类库可以向下兼容,这样新老项目就可以共用一个类库,从而减少开发的代码量提高效率。怎么实现呢?简单地创建一个.NET Standard是不行的。下面用实例来实现多版本的类库。

一、新建一个 .NET Standard 类库。

打开Visual Studio2022,新建一个 .NET Standard 类库,注意在选择的时候最好选择最新版本 .NET Standard 2.1。.

两步实现Visual Studio创建支持.Net多版本的类库

项目创建成功后可以看到如下内容

两步实现Visual Studio创建支持.Net多版本的类库

二、增加所兼容的版本

创建好.NET Standard 项目后只能兼容.NET Core项目,不能兼容.NET framework项目,需要在项目里配置支持的版本。可以编辑项目文件增加所支持的版本。

在Visual Studio2022中双击创建的类库项目便打开了项目编辑文件(vs2019好像可以点击右键打开)。如下

两步实现Visual Studio创建支持.Net多版本的类库

从打开的项目文件可以看到当前类库默认为 netstandard2.1,配置的xml标签为 TargetFramework。如果要支持多版本,这里需要做调整,将 TargetFramework 节点加个s修改为 TargetFrameworks,再添加目标版本。如下:

<Project Sdk="Microsoft.NET.Sdk">  <PropertyGroup>    <TargetFrameworks>netstandard2.1;net45</TargetFrameworks>  </PropertyGroup></Project>

修改完成后重新生成编译就可以了,如下图,属性的目标框架已经是2个版本了:

两步实现Visual Studio创建支持.Net多版本的类库

依赖项也是两个版本,如下图。

两步实现Visual Studio创建支持.Net多版本的类库

当你看到如上两张图片任意一张的情况,证明你创建的兼容版本类库成功了。接下来你就可以在老版本的.NET framework项目中引用这个类库,与新版的.NET共用一个类库,从而减少代码开发量。