在项目的迭代过程中,总会遇到新老项目过渡的问题,有的过渡甚至很长。小编曾经任职过的一个家公司,项目的版本有.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。
项目创建成功后可以看到如下内容
二、增加所兼容的版本
创建好.NET Standard 项目后只能兼容.NET Core项目,不能兼容.NET framework项目,需要在项目里配置支持的版本。可以编辑项目文件增加所支持的版本。
在Visual Studio2022中双击创建的类库项目便打开了项目编辑文件(vs2019好像可以点击右键打开)。如下
从打开的项目文件可以看到当前类库默认为 netstandard2.1,配置的xml标签为 TargetFramework。如果要支持多版本,这里需要做调整,将 TargetFramework 节点加个s修改为 TargetFrameworks,再添加目标版本。如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.1;net45</TargetFrameworks>
</PropertyGroup>
</Project>
修改完成后重新生成编译就可以了,如下图,属性的目标框架已经是2个版本了:
依赖项也是两个版本,如下图。
当你看到如上两张图片任意一张的情况,证明你创建的兼容版本类库成功了。接下来你就可以在老版本的.NET framework项目中引用这个类库,与新版的.NET共用一个类库,从而减少代码开发量。
版权声明:本文来源于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,本公众号立即删除。
关注公众号:DotNet开发跳槽
觉得不错,请点个在看呀