将.NET Framework 4.6.2迁移到.NET Standard 2.0

时间:2018-10-13 09:46:45

标签: .net .net-core

我们有一组在.NET Framework 4.6.2下创建的类库,我们想将这些库移入.NET Core 2.0或.NET Core标准2.0

我们有以下几种方式,

  • 创建一个新项目并复制代码。
  • 通过编辑CSPROJ文件来转换现有项目。

哪种方法更好地迁移库,并且.NET Standard会影响.NET核心上的性能。

是否有其他选择来迁移这些集合。

2 个答案:

答案 0 :(得分:4)

我认为对.NET Standard 2.0实际上是一个误解。

.NET Standard 是为了在.NET的多个不同实现中创建通用API表面而创建的。

这些实现包括.NET Framework,Mono, .NET Core 等。从这个意义上讲-.NET Core是.NET的版本,.NET Standard和.NET Core之间没有连接。

如果您创建.NET Standard库,那么它基本上是与平台无关的,这意味着它可以在支持.NET Standard版本的任何 .NET实现上运行定位。这意味着,如果将现有的.NET Framework 4.6.2库升级到.NET Standard,则只能获得该库的可移植性,但是,如果仍在面向.NET Framework的应用程序中使用该库,则不会看到性能提升,因为该库仍将在相同的.NET Framework上运行。

如果您将整个应用程序本身移植到.NET Core(3.0推出后将更加容易),那么您肯定会看到性能的提高,因为您的库将随后在.NET Core上运行。

对于移植-通常最简单的方法是创建一个空库,然后手动将现有类复制到新库中,然后安装所有必需的NuGet软件包。

答案 1 :(得分:2)

除了@Martin的答案之外,要将现有的.NET Framework应用程序迁移到.NET Core,您可以首先从portablility analyzer tool开始。该工具是Visual Studio扩展,可提供有关应用程序灵活性的详细报告。

将现有项目迁移到.NET Core是一个过程,这可能需要一些时间,具体取决于解决方案的性质。该工具在确定项目状态时非常有用。 如果仅针对.NET Framework 4.6.2,则迁移应该相对简单。这是您可以做的:

  1. 创建新的.NET SDK样式项目enter image description here

  2. 编辑新项目的set picPath to (POSIX path of "/Users/ADMIN/Desktop/folder1/folder2/nameoffile ") & ".png" as string 文件,并将目标框架更改为net462。

csproj

  1. 将文件从旧项目移动到新项目。

  2. 删除旧项目并更新引用

  3. 为所有类库重复步骤

我建议从具有最小依赖性的类库开始,测试更改,并在转换完所有简单的内容后移至更复杂的内容。