.net - 将现有项目从 net framework 4.5.2 迁移到 dotnet core 或 netstandard
问题描述
我正在将我的项目从 .net 框架 4.5.2 移植到 .net 标准。我已阅读这篇文章以获得指导。正如我在那篇文章中看到的那样,.net 框架 4.5.2 应该实现 .net 标准 1.2 或 1.3(如表中所示,有 .net 框架 4.5.1 和 4.6,但没有 4.5.2,所以我不确定)。
因此,它应该适合将我的项目定位到 .net 标准 1.3。我想,如果我的项目只使用 .net 框架库,我可以重新定位而不会出现任何错误。但是,当我运行.NET Portability Analyzer 工具时。它表明System.Xml.XPath.XPathNodeIterator仅在 .net 框架 4.5.2 中受支持,而不在 .net 标准 1.3 中受支持。我必须以 .net 标准 2.0 为目标才能使其工作。
这真的让我很困惑。我在这里误解了什么吗?
解决方案
从net framework
tonetcore
或netstandard
targetnetstandard2.x
或其中一个目标几乎无痛地迁移netcore___2.x
。
尝试将现有的大型网络框架项目迁移到netstandard 1.x
或是netcore 1.x
一种痛苦的经历。而且由于 netcore2 存在,它现在既痛苦又徒劳。Netcore 1.x 缺少很多您希望在网络框架项目中工作的 NetFramework API。因此,您的迁移项目无法构建,您需要做很多工作来修复它。
但是,如果您将现有代码移动到一个新的 Netstandard/netcore 2 项目中,那么大部分 Framework 4.x API 都在那里,并且更多的东西只需很少的更改就可以“正常工作”。显然你必须重新添加 NuGet 和其他依赖项。
对于那些不能“正常工作”的东西,我写了一篇关于多目标网络框架/网络核心的博客,其中包括关于在两个目标之间移动的一些陷阱的部分。
推荐阅读
- c - C Memory free in loop error -> 大小为 1 的无效读取
- javascript - NodeJS/ExpressJS - 将 http 请求的响应发送回客户端
- python-3.x - 是否有 cv2.namedWindow() 和 cv2.destroywindow() 的替代方法?
- configuration - 如何在 TYPO3 后端的标签旁边显示字段名?
- arduino - 在 arduino DUE 上使用 SYSCTRL
- c# - Xamarin Android 中的 Post 方法
- entity-framework - 是否可以将 EntityFramework/ADO.NET DLL 与 Core 应用程序集成?
- ruby-on-rails - Rails:控制器操作中的 elsif && 条件语句不起作用
- java - PowerMock 和 Mockito UnfinishedVerificationException
- caching - 如何获得 Pivotal Cloud Cache 空闲超时以在访问时重置