首页 > 解决方案 > 将现有项目从 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.net-standard.net-framework-version.net-standard-2.0

解决方案


net frameworktonetcorenetstandardtargetnetstandard2.x或其中一个目标几乎无痛地迁移netcore___2.x

尝试将现有的大型网络框架项目迁移到netstandard 1.x或是netcore 1.x一种痛苦的经历。而且由于 netcore2 存在,它现在既痛苦又徒劳。Netcore 1.x 缺少很多您希望在网络框架项目中工作的 NetFramework API。因此,您的迁移项目无法构建,您需要做很多工作来修复它。

但是,如果您将现有代码移动到一个新的 Netstandard/netcore 2 项目中,那么大部分 Framework 4.x API 都在那里,并且更多的东西只需很少的更改就可以“正常工作”。显然你必须重新添加 NuGet 和其他依赖项。

对于那些不能“正常工作”的东西,我写了一篇关于多目标网络框架/网络核心的博客,其中包括关于在两个目标之间移动的一些陷阱的部分。


推荐阅读