将.NET库包装/转换为.NET Core

时间:2016-09-16 05:15:30

标签: .net asp.net-core .net-core asp.net-core-1.0

我想将针对.NET 4.6构建的现有ASP.NET API转换为ASP.NET Core。从我做过的小测试开始,我就像我在.NET Core中看到的那样 - 它更快,并且有机会在Linux上运行。

但我遇到的最大问题是许多使用完整.NET F / W编写的开源库仍然与它不兼容(并且如果有的话,也没有给出任何信息) )。突然之间,.NET Core失去了很多吸引力。

我的问题是,有没有办法在.NET Core中使用现有的nuget库?有没有办法包装它们让它们起作用?如果没有,如何将完整的.NET F / W库转换为.NET Core?是否必须完全重写?

2 个答案:

答案 0 :(得分:0)

您拥有使用完整.NET Framework构建的API,并且您希望将它们编译为.NET Core(CoreFx)。这不是我们现在手动完成的。如果你想要,你必须创建PCL。

如果查看.NET Core文档,您会发现.NET Core 小并优化运行时。因此,所有.NET Framework库都将重新编译为CoreFx,以便.NET Team进行优化。预计所有.NET Framework库的支持将在2017年第一季度的第一季度兼容,因为您可以了解有关它们的更多信息here

还有另一种可能性,您也可以将.NET Framework库与.NET Core一起使用,但它只能与Windows兼容。

答案 1 :(得分:0)

  

[有没有办法在.NET Core中使用现有的nuget库?

是的,只要这些库是可移植的(PCL)。虽然可移植库可能使用.Net Core不支持的API,但是为了尝试使用这些库,您需要在project.json中使用"imports"

对于.Net Framework库,重新编译是必要的(但可能还不够)。

作为替代方案,您可以在.Net Framework上使用ASP.NET Core。这样,您可以获得一些性能改进,同时仍然可以使用所有.Net Framework。但是你确实失去了对Linux和Mac OS的可移植性(除非你算上单声道)。

  

有没有办法包装[.Net Framework库]使它们在.Net Core上工作?

据我所知。

  

如何将完整的.NET F / W库转换为.NET Core?是否必须完全重写?

通常,它不必完全重写。但您必须更改.Net Core不支持的部分内容。

虽然等待,情况会好转,因为.Net Core上最初省略的许多API很快就会回来。这可能是一些图书馆作者不急于支持.Net Core的原因之一。