.NET Standard多目标框架类库项目文件修改配置

本文介绍了如何创建一个.NETStandard类库,支持多个.NET框架,如.NETFramework和.NETCore。通过修改项目文件的TargetFrameworks标签,可以指定多个目标框架。在处理NuGet包时,如果包支持不同框架,会自动安装,否则需要在项目文件中通过Condition属性手动配置不同框架的包引用。文章还提供了处理不兼容框架的包引用的示例和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建一个.NET Standard类库

选择“类库”,用于创建面向.NET或.NET Standard的类库的项目。注意:不要选择“类库(.NET Framework)”

添加

项目文件

双击项目名称,或者右键,点击“编辑项目文件”,打开项目文件

在这里插入图片描述

在这里插入图片描述

项目文件内容:

在这里插入图片描述

改成支持多个net目标框架

TargetFramework标签改为TargetFrameworks,然后里面输入需要增加的版本,示例:

  • net framework4.5,输入net45
  • net framework4.6.1,输入net461
  • net core 3.0,输入netcoreapp3.0;net core版本以此类推
  • net standard 输入netstandard2.0
  • net5.0输入net5.0;5.0以上以此类推
  • net5.0(及以上)如果针对某一系统平台,如windows,输入net5.0-windows
 <TargetFrameworks>netstandard2.0;netcoreapp3.0;netcoreapp3.1;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481;net5.0-windows;net6.0-windows;net7.0-windows</TargetFrameworks>

在这里插入图片描述

修改完成后保存,项目自动加载,也会出现如下错误,只要重新加载项目即可。

在这里插入图片描述

加载完成后可以在项目依赖项中看到多个net目标框架,及其相关的引用

在这里插入图片描述

多Net框架类库安装nuget包

nuget包支持你的多个net目标框架

如果选择的nuget包支持你的多个net目标框架,会自动为各net框架安装

在这里插入图片描述

可以在各个版本中看到包正常安装。
在这里插入图片描述

nuget包支持你部分net目标框架

如果需要安装的nuget包只支持部分net版本,支持的部分可以正常安装,不支持的会提示异常

在这里插入图片描述

异常的显示黄色感叹号
在这里插入图片描述

解决方法:

在项目文件中配置

当前项目文件已经出现了包的引用

在这里插入图片描述

需要对不同NET版本进行不同的包引用

示例:sqlsugar包的应用,net framework版本引用sqlsugar,net Core版本(包括新的net 5.0以上版本)引用SqlSugarCore

在这里插入图片描述

增加一个ItemGroup对引用进行分组,通过Condition属性增加条件,格式'$(TargetFramework)'=='net版本',然后在该ItemGroup中增加包引用PackageReference

<ItemGroup Condition="'$(TargetFramework)'=='net45'">
    <PackageReference Include="SqlSugar" Version="5.1.3.50" />
  </ItemGroup>

在这里插入图片描述

修改完成之后可以看到只有net45版本引用了该包

在这里插入图片描述

然后为net5.0增加另一个包的引用

在这里插入图片描述

结果:

在这里插入图片描述

 <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)'=='net45'">
    <PackageReference Include="SqlSugar" Version="5.1.3.50" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)'=='net5.0'">
    <PackageReference Include="SqlSugarCore" Version="5.1.3.50" />
  </ItemGroup>

注意事项1'$(TargetFramework)'=='net版本'net版本中带 逗号.的需要加上单引号'',否则项目文件会出错。其他情况可以不加单引号

注意事项2:右侧值net版本需要和TargetFrameworks中写的net版本一致。例如上面版本是net5.0,下面写net5,则不会引用

在这里插入图片描述

在这里插入图片描述

更多

关于项目文件更多的标签元素的使用可以阅读官网

MSBuild 项目文件架构引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海盗Sharp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值