将.Net Framework 4.6.2项目转换为.Net核心项目

时间:2018-01-02 08:01:59

标签: .net-core

我有一个解决方案,其中包含由.Net framework 4.6.2开发的一堆类库。我必须将这些类库转换为.Net核心。是否有任何最好和最快的方式转换而不是重写代码。

3 个答案:

答案 0 :(得分:4)

大多数BCL仍然是API相同的,因此转换绝对可以考虑。是的,您的代码中可能存在不兼容性(或者更常见的是 - 与您的依赖关系),最简单的检查方法是尝试使用.net核心构建它。

有关何时转换(以及何时重写)或执行转换的选项的详细信息,您可以按照本指南进行操作:Upgrading to .NET Core and .NET Standard Made Easy

答案 1 :(得分:0)

This似乎是进行迁移的Microsoft官方资源。总结如下:

  1. (推荐)重新定向要移植的所有项目,以.NET Framework 4.7.2或更高版本为目标。

  2. (推荐)使用.NET可移植性分析器分析程序集,并查看它们是否可移植到.NET Core。

  3. (推荐)。在您的项目中安装.NET API分析器,以识别在某些平台上引发PlatformNotSupportedException的API以及其他一些潜在的兼容性问题。

  4. 使用Visual Studio中的转换工具将所有package.config依赖项转换为PackageReference格式。

  5. 为.NET Core创建新项目并复制源文件,或尝试使用工具转换现有项目文件。

  6. 移植您的测试代码。

答案 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/