我有一个解决方案,其中包含由.Net framework 4.6.2开发的一堆类库。我必须将这些类库转换为.Net核心。是否有任何最好和最快的方式转换而不是重写代码。
答案 0 :(得分:4)
大多数BCL仍然是API相同的,因此转换绝对可以考虑。是的,您的代码中可能存在不兼容性(或者更常见的是 - 与您的依赖关系),最简单的检查方法是尝试使用.net核心构建它。
有关何时转换(以及何时重写)或执行转换的选项的详细信息,您可以按照本指南进行操作:Upgrading to .NET Core and .NET Standard Made Easy。
答案 1 :(得分:0)
This似乎是进行迁移的Microsoft官方资源。总结如下:
(推荐)重新定向要移植的所有项目,以.NET Framework 4.7.2或更高版本为目标。
(推荐)使用.NET可移植性分析器分析程序集,并查看它们是否可移植到.NET Core。
(推荐)。在您的项目中安装.NET API分析器,以识别在某些平台上引发PlatformNotSupportedException的API以及其他一些潜在的兼容性问题。
使用Visual Studio中的转换工具将所有package.config依赖项转换为PackageReference格式。
为.NET Core创建新项目并复制源文件,或尝试使用工具转换现有项目文件。
移植您的测试代码。
答案 2 :(得分:0)
将.net框架项目切换到.netcore项目的最简单方法是打开csproj文件,并从TargetFramework
更改类似的内容
<TargetFramework>net462</TargetFramework>
像这样
<TargetFramework>netcoreapp3.1</TargetFramework>
如果希望在.net core和.net Framework使用者项目之间实现兼容性,也可以将其更改为.net标准,方法是将其更改为:
<TargetFramework>netstandard2.0</TargetFramework>
您可以像这样针对多个框架:
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
确保使用正确的版本号,并且显然取决于该项目已针对的目标,事情将会中断并且需要修复。例如,不能将.net框架类库与.net核心项目一起使用。
此处提供了更详细的过程: https://docs.microsoft.com/en-us/dotnet/core/porting/