创建同时基于.NET Framework、.NET Core、.NET Standard项目的方法

如果我们开发Windows用户程序(WPF、Winform),我们会用到.NET Framework。

如果我们要做跨平台的应用,我们会用到.NET Core。既然是跨平台,是不是.NET Core的项目可以用在WPF上呢?并不可以,.NET Core没有Windows的特性,不能直接用在WPF上。

但实际上,我们开发的一些类库,并不涉及到Windows特性,例如我们只是实现某些算法,纯数学的。我们怎么把这样的类库既用在.NET Framework的项目上,又用在.NET Core的项目上呢?

考虑到还有一个.NET Standard,我们先看看三者之间的关系:

这么说,.NET Standard就是.NET Framework和.NET Core的基础。那我们是不是开发.NET Standard的类库就可以呢?

理论上这样做是可以的,但目前这种方法会出现以下的问题:

(1).NET Standard还不成熟,比较乱,更新之后dll变化比较大。

(2).NET Framework的项目加入.NET Standard后,会多出几十上百个dll。

(3).NET Standard还有很多功能没有实现。

 

那么,我们这里还有一个解决问题的方法,就是我写一份代码,然后分别编译成.NET Framework、.NET Core和.NET Standard的dll,供不同的项目使用。

第一步,必须使用Visual Studio 2017以上的版本,否则没办法这么做。

第二步,新建一个.NET Core的类库项目。

第三步,用文本工具打开项目文件(*.csproj),它其实就是一个XML文件。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

</Project>

第四步,把TargetFramework一行改成:<TargetFrameworks>netcoreapp2.1;net45</TargetFrameworks>。这样,项目就加入了.NET Framework 4.5的编译了。注意,改后的是TargetFrameworks,复数。

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

第五步,重新用Visual Studio打开项目,我们就会看到有两个编译选项,输出也会有两个。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值