本文介绍如何通过visual sutdio 2019 创建同时支持多个版本的类库,下面以意见建立号的.NET5类库为例,将类库同时支持.NET5和.NET4.5其他类库操作类似。
首先我们找到需要多版本支持的.net类库程序,右键项目文件选择“编辑项目文件”,.csproj文件有类似下面的内容:
想要类库支持多个.net版本,需要将上面 TargetFramework改成 TargetFrameworks,然后加入其他的类库版本,如下
项目文件编辑保存后,类库引用如下图
.net不同版本函数和类库会有不同,程序中需要根据不同的类库版本进行编译,可以使用宏的方式,针对不同的版本进行设置
#if NET45
Console.WriteLine("Target framework: .NET Framework 4.5");
#else
Console.WriteLine("Target framework: .NET 5");
#endif
另一种可以通过定义约束的方式针对不同的.NET版本进行区别开发
程序中同样采用宏的方式
#if NETALL
int num;
#else
long num;
#endif
同时,还可以针对不同的版本进行引用类库的设置
版本范围
| Notation | 应用的规则 | 描述 |
| 1.0 | x ≥ 1.0 | 最低版本(包含) |
| (1.0,) | x > 1.0 | 最低版本(独占) |
| [1.0] | x == 1.0 | 精确的版本匹配 |
| (,1.0] | x ≤ 1.0 | 最高版本(包含) |
| (,1.0 | x < 1.0 | 最高版本(独占) |
| [1.0,2.0] | 1.0 ≤ x ≤ 2.0 | 精确范围(包含) |
| (1.0,2.0) | 1.0 < x < 2.0 | 精确范围(独占) |
| [1.0,2.0) | .0 ≤ x < 2.0 | 混合了最低版本(包含)和最高版本(独占) |
| (1.0) | 无效 | 无效 |



