实际体验 .NET Standard 2.0 的魅力
在我们的 .net core 大迁移工程中,有些项目完成了迁移,有些还未迁移,这就带来了一个烦恼——我们自己开发的公用类库如何在 .net core 与 .net framework 项目中共享?如果不能共享,就得痛苦地针对同一个功能分别写 .net core 版与 .net framework 版。迁移开始的一段时间,我们就干了这样的傻事。
最近我们又遇到了这个问题,但今非昔比,如今已经有了为此而生的羽翼丰满的 .net standard 2.0 ,再加上 Artech 这篇醍醐灌顶的博文 .NET Core跨平台的奥秘[下篇]:全新的布局 解释清楚了 .net standard 的原理,于是可以借此机会实际体验一下 .net standard 2.0 的魅力。
需要在 .net core 与 .net framework 中共享的类库,只需创建一个 .net standard 类库项目 ,然后发布为 nuget 包。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
在 asp.net core 项目中直接安装这个 nuget 包即可。
在基于 .net framework 的传统 asp.net 项目中呢?。。。也是直接安装这个 nuget 包即可,这么简单?是的,就这么简单!
但有一个不同之处,传统 asp.net 项目安装 nuget 包时会自动安装一个依赖包 NETStandard.Library ,这个包中装的是以下42个程序集:
.net framework 应用能够引用基于 .net standard 的类库靠的就是上面的这些程序集,其中最重要的角色是 netstandard.dll ,它是一个垫片程序集,由它负责将对 .net standard api 的调用转发到 .net framework 中对应的真正干活的程序集,实现了 .net framework 与 .net core 的类库共享。
另外,有一个地方需要注意,在一个传统 asp.net 解决方案中,如果只是在该解决方案的类库项目中安装了 .net standard 的 nuget 包,编译 web 项目时并不会将上面的42个程序集复制到 web 项目的 bin 文件夹中,需要在 web 项目中再安装一下 NETStandard.Library nuget 包。
帅!这下还未完成迁移的传统 asp.net 项目可以先直接调用 .net core 中的公用类库了。
实际体验 .NET Standard 2.0 的魅力的更多相关文章
- .NET Core 2.0及.NET Standard 2.0
.NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q ...
- 微软Build 2017第二天 .NET Standard 2.0 Preview 的客户端跨平台
微软公司一年一度的开发者大会,即“Microsoft Build 2017”在总部西雅图正式开幕.按照官方安排,本次大会将持续 3 天,主题围绕微软公司各项最新技术成果的展示和研讨,包括与微软相关的产 ...
- .NET Standard 2.0 特性介绍和使用指南
.NET Standard 2.0 发布日期:2017年8月14日 公告原文地址 前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时 ...
- [C#] .NET Core/Standard 2.0 编译时报“CS0579: Duplicate 'AssemblyFileVersionAttribute' attribute”错误的解决办法
作者: zyl910 一.缘由 当创建 .NET Core/Standard 2.0项目时,VS不会像.NET Framework项目一样自动生成AssemblyInfo.cs文件. 而且,若是手工在 ...
- .NET Standard 2.0正式发布了
亦可赛艇 前天(2017年8月14日),.NET Standard 2.0正式版终于发布了,与之相配套的.NET Core 2.0也同时正式发布,真是令人振奋. 详情请看:https://blogs. ...
- 在ubuntu16.04中再次体验.net core 2.0
在上一篇文章中在ubuntu16.04中初次体验.net core 2.0 简单介绍了一下ubuntu中运行.net core 2.0.配置nginx反向代理以及安装supervisor守护进程……本 ...
- .NET Core 2.0及.NET Standard 2.0 Description
NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q3 ...
- 安装.Net Standard 2.0, Impressive
此版本的.NET Standard现在支持大约33K的API,与.NET Standard 1.x支持的14K API相比.好的是大部分API来自.NET Framework.这使得生活更容易将代码移 ...
- Introducing XAML Standard and .NET Standard 2.0
XAML Standard We are pleased to announce XAML Standard, which is a standards-based effort to unify X ...
随机推荐
- 微信公众号基础02_获取accessToken和用户信息
上一篇分享了搭建微信公众号server,本文分享一下假设获取access_Token和用户信息.工具还是新浪云SAE 1.获取access_Token 相见开发文档:https://mp.weixin ...
- 002_ASP.NET 换主题
网盘下载地址 http://pan.baidu.com/s/1c1VzIla 在线观看地址 http://www.bamn.cn/course/lesson/2 课程介绍 ASP.NET 实现更换主题 ...
- 从public void onPreviewFrame(byte[] data, Camera arg1)拿到Bitmap(收集)
private PreviewCallback pc = new PreviewCallback(){ public void onPreviewFrame(byte[] data, Camera a ...
- spring boot user authorities类图
- vue子父组件的通信
Element使用的是Vue2.0版本,众所周知在Vue 1.0升级到2.0中去除了$broadcast和$dispatch方法. 1.父组件向子组件传值 a.app.vue父组件 <templ ...
- [转]Unity手游之路<十二>手游资源热更新策略探讨
最近梳理了下游戏流程.恩,本来想写下,但是,还是看前辈的吧 版权声明: https://blog.csdn.net/janeky/article/details/17666409 上一次我们学习了如何 ...
- Vue中的computed属性
阅读Vue官网的过程中,对于计算属于与监听器章节的内容有点理解的不清晰:https://cn.vuejs.org/v2/guide/computed.html. 后来上网查询了资料,结合官网的说明,总 ...
- Vue.js常用指令:v-model
一.v-model指令 v-model 用来获取表单元素的值.对应input输入框获取的是输入的值,单选按钮.复选框.下拉框获取的是选择的状态. 代码示例如下: <!DOCTYPE html&g ...
- 第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件
第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件 设置后台列表页面字段统计 在当前APP里的adminx.py文件里的数据表管理器里设置 ag ...
- Spark学习笔记——在远程机器中运行WordCount
1.通过realy机器登录relay-shell ssh XXX@XXX 2.登录了跳板机之后,连接可以用的机器 XXXX.bj 3.在本地的idea生成好程序的jar包(word-count_2.1 ...