将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目
迁移Net项目为Net Core\Standard项目
背景:
我们公司内部有自己ORM开发框架,最新因为需要将系统迁移到国产服务器上,所以首先需要将最基础的ORM框架改造可以运行在国产服务器上。对于我们Net来说,优选Net Core。在迁移的过程中,将一些经验和坑记录下来,帮助自己记忆同时也给有同样需求的Net朋友一些帮助。
原始项目 Beyonbit.Framework 预览
看上图的当前项目,为我们的ORM框架。本次迁移主要将Beyondbit.Framework项目从Net Framework 3.5 迁移为 Net Core\Standard 2.0。
新建一个Net Standard 类库为Beyonbit.Framework
新建的步骤很简单,就不截图说明。
为什么创建一个项目,而不是将现在的项目升级
几点考虑:
- 当前类库是一个非常稳定的类库
- 这个类库是一个历史类库,有非常多的功能,并且我不知道所有的功能
- 在将这个类库升级成功前,这个类库需要继续提供给Net Framework 项目使用
- 类库升级成功后,很有可能比不稳定,在稳定的这段期间,依然需要稳定的类库给Net Framework 使用
- 为什么不重新复制一份代码,在这个复制的代码上改造?当然首先我会建立一个分支。同时,基于以上原因,我希望的是同一份代码可以编译出Net Framework和Net Core\Standard类库
可以看看微软的建议《组织项目以支持 .NET Framework 和 .NET Core》
Net Standard和Net Core的关系
简单来将 Net Standard就是以前微软的共享类库的升级版,dll可以运行在WPF、ASP.NET、WinFrom、Silverlight、UWP的类库。
而Net Core生成的类库,依然只能运行在NetCore运行时上。
这个了解共享类库的概念会很好理解,不了解的话,可以看看其他同学写的文章。
linezero同学的《.NET Core 2.0及.NET Standard 2.0》
或微软的文章《.Net Core, .Net Framework, .Net standard library, Xamarin 之间关系》
移植现有代码到Net Core上
项目创建好了,如何将现在的类文件迁移到新项目上呢。可能有以下方案:
- 把所有文件复制到新项目上
- 把所有文件用快捷方式的办法添加到新项目上
在迁移这方面可以看看凌晨三点半同学的文章《迁移.net framework 工程到.net core》和《度量.net framework 迁移到.net core的工作量》
不过我的做法和凌晨三点半同学的不一样。我是在参看log4net的开源代码时,看到的思路,借鉴了这个更简单的方法。
使用文本编辑器打开新建项目的.csproj文件
我的项目内容如下:
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>netstandard2.0</TargetFramework></PropertyGroup>
</Project>
在文件中添加一下代码:
<ItemGroup><Compile Include="..\..\Beyondbit.Framework\**\*.cs" /></ItemGroup>
这句代码的意思是,将Beyondbit.Framework目录下的所有文件和目录都用快捷方式包含到项目中。
效果如下:
可以看到新项目的文件和老项目的文件是一模一样的,并且图标可以看出是快捷方式添加的。
Build 当前项目
项目已经迁移OK了,我们可以Build一下项目,然后将所有错误消灭。
我的项目编译结果如下:
总共有60个错误。最后调整发现不止60个错误,当这60个错误处理后,再编译,产生了新的错误,加起来有100个错误左右。
总结:
迁移第一步工作结束,后续第二部的工作是来消灭错误,第三部是迁移单元测试和集成测试项目,以及最终的多个平台运行的测试。
转载于:https://www.cnblogs.com/xakoy/p/8880206.html
将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目相关推荐
- Vue2 大型项目升级 Vue3 详细经验总结
前言 前段时间,公司准备在现有的 Vue2 项目中做一个聊天系统,但考虑开发聊天系统的周期并不短,客户又急需.于是准备对接腾讯的 IM 组件,来实现. 不知道的这里贴个官网: IM TUIKit 官方 ...
- Qt项目升级到Qt6经验总结(别人写的,仅作记录)
这两篇文章是一样的,随便查看一个即可 https://www.jb51.net/article/216758.htm 从QT4.QT5到QT6的版本移植总结_存于心,而非流于形.-CSDN ...
- 说一说实战项目升级从vue2到vue3 之main.js 区别
相信很多人都对尤大口中的vue3蠢蠢欲动许久了,但是很多人就是一头雾水没法下手,不知道改怎么搞,或者怕项目升级报错什么的. 我自己的成功的把项目进行升级了,所以想简单记录一下. 简而言之首先就是版本嘛 ...
- ASP.NET Core 2.0 Web API项目升级到ASP.NET Core 3.0概要笔记
本文结构 先决条件 升级目标框架(Target Framework)的版本 过时的IHostingEnvironment与IApplicationLifetime对象 Endpoint Routing ...
- WinForms项目升级.Net Core 3.0之后,没有WinForm设计器?
目录 .NET Conf 2019 Window Forms 设计器 2019 9.23-9.25召开了 .NET Conf 2019 大会,大会宣布了 .Net Core 3.0 正式版.这两天我也 ...
- ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1
一.前言 最近一两个星期,加班,然后回去后弄自己的博客,把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10,原本计划的学习 Vue 中生命周期的相关知 ...
- 迁移Net项目为Net Core\Standard项目
背景: 我们公司内部有自己ORM开发框架,最新因为需要将系统迁移到国产服务器上,所以首先需要将最基础的ORM框架改造可以运行在国产服务器上.对于我们Net来说,优选Net Core.在迁移的过程中,将 ...
- 面试项目亮点_怎样在面试中更好地介绍自己的项目经验?
前言 在面试时,经过寒暄后,一般面试官会让介绍项目经验 .常见的问法是,说下你最近的(或最拿得出手的)一个项目. 根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从 ...
- C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6
概述 .NET6 正式版本已经发布有一阵子了,今天我就体验一下如何将.NET Framework的项目升级为.NET 6. 升级条件: Windows 操作系统 .NET 6 SDK Visual S ...
最新文章
- 微服务架构之「 服务注册 」
- 深度强化学习入门到精通--资料综述
- 【错误记录】PyCharm 运行 Python 程序报错 ( SyntaxError: Non-ASCII character ‘\xe5‘ in file x.py on line 1, but )
- OTA固件升级对于物联网设备的重要性
- UA OPTI570 量子力学32 参考系与绘景
- 都说dlib是人脸识别的神器,那到底能不能识破妖怪的伪装?
- Gartner的预言:通向混合IT之旅
- 今天1024程序猿节啦!一起穿格子衫上班吧
- LINUX警告:检测到时钟错误。您的创建可能是不完整的。-转
- POJ NOI0105-32 求分数序列和
- Codeforces Round #147 (Div. 2) E. Build String 最小费用最大流
- Python--itertools包--groupby使用(分类)
- 计算机电源管理器怎么打开,联想电源管理软件打不开怎么办
- Blender学习笔记(3)建模|blender
- python做游戏怎么实现窗口_pygame游戏之旅 创建游戏窗口界面
- 0527基于51单片机的防酒驾检测系统设计Proteus仿真
- mt4虚拟服务器账户无效,外汇登录显示无效账户怎么办?
- 拓扑排序:绿豆蛙的归宿
- AutoCAD 2010将不再安装VBA
- 成都有什么好的互联网公司推荐?
热门文章
- 【转】解决:ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
- php unlike,PHP结合jQuery实现的评论顶、踩功能
- python决策树算法代码_Python3.0 实现决策树算法的流程
- java 中和_java中的和=是什么意思
- 网工路由基础(5)ISIS协议
- 【教程】超详细的虚拟无线控制器安装教程
- Fluid 架构创新论文被国际数据库顶会 ICDE 录用
- 网易云音乐音视频算法的 Serverless 探索之路
- Apache Flink 1.10.0 发布 | 云原生生态周报 Vol. 38
- Java 并发编程-不懂原理多吃亏(送书福利)