.NET 4.0 DLL(使用Nuget包)与.NET CORE的代码重用

时间:2017-10-15 18:18:47

标签: .net visual-studio-2015 asp.net-core aws-lambda

我花了几天时间在.NET 4.0中编写.DLL函数的类库。

现在我想使用.NET Core从AWS Lambda函数调用它。 显然,我们无法从CORE引用.NET Framework;得到这个错误:

HostBinding('class') theme = 'light'

在我的类库中,我使用了每个Nuget包来节省时间并使我的代码变小。所以,即使我将我的类库转换为CORE,我现在必须重写每个Nuget包?

好像我们真的没有在这里重复使用代码。我在这里错过了一些捷径,或者这只是一个巨大的痛苦?如果每个Nuget都是开源的,那么我必须得到代码,然后构建它的.CORE版本?

我读过这个Q / A但是还没有提供任何解决方案:enter image description here

2 个答案:

答案 0 :(得分:1)

大多数nuget软件包都符合netstandard(1.x / 2.x)标准,因此如果将项目转换为.NET标准库,很有可能在项目中使用它们。例如,Autofac与.NET Framework 4.5以及.NET Standard 1.1(.NET标准库> = 1.6)兼容。

enter image description here

从屏幕截图中我们可以看到您的项目不符合.NET标准。区别在于您已将.NET Framework模板用于以下项目: enter image description here

虽然您应该使用.NET标准模板: enter image description here

如果您的项目没有使用某些Windows原生函数,那么您很可能只需将其转换为.NET Standard项目,几乎不做任何更改。

以下是如何创建符合.NET Standard的新项目: enter image description here 此外,从截图我可以看到您的目标是.NET Core 1.0,因此您必须确保您的项目针对正确的.NET标准版本(我知道这可能会让您感到困惑)。 Here是.NET Framework / .NET Core与.NET Standard兼容的列表。 对于.NET Core 1.0,您的库应该以.NET Standard 1.6为目标: enter image description here

答案 1 :(得分:0)

我相信您也可以从现有的DLL创建一个nuget包,然后它适用于:)

(如果我没有记错,不是100%肯定)