2016-11-10 95 views
0

我正在做一个网络库(https://github.com/Eastrall/Ether.Network),目前是针对.NET Core框架,但我希望同时支持.NET Core和.NET Framework(4. *).NET Core和.NET Framework的C#库

我听说在project.json上增加一些行这是一个很好的解决方案吗?

有人可以帮助我吗?谢谢

+0

太模糊了,.net核心在范围上比.NET框架更受限制,我不明白这是如何实现的。 –

+0

所以我不能在NuGet上为.NET Core和.NET Framework部署我的库? – Eastrall

回答

3

是的,修改project.json是你所需要的。它应该看起来像:

{ 
    "version": "1.0.0", 

    "dependencies": { 
    "NETStandard.Library": "1.6.0" 
    }, 

    "frameworks": { 
    "netstandard1.3": { 
     "imports": "dnxcore50" 
    } 
    } 
} 

下面是从official documentation映射.NET平台标准感兴趣平台的方案:

enter image description here

几个简单的音符:

  • 如果一个库的目标是.NET平台标准版本1.3,那么它只能运行 .NET Framework 4.6或更高版本,.NET Core,通用Windows 平台10(UWP)和Mono/Xamarin平台。
  • 如果库的目标为 .NET平台标准版本1.3,它可以使用以前的.NET平台标准版本(1.2,1.1,1.0)的所有 的库。
  • 支持.NET平台标准版本 的最早的.NET Framework是.NET Framework 4.5。这是因为用作.NET平台标准的 基础的新的便携式API表面 区域(又名基于System.Runtime的表面区域)仅在该版本的.NET Framework的 中可用。面向.NET Framework < = 4.0 需要多重定位。

进一步的细节,建议检查出official documentation

+2

可能值得补充的是,最好避免使用netstandard 1.5或1.6,因为它们不会与netstandard 2.0兼容。 Netstandard 1.4或更早版本将兼容netstandard 2.0,所以现在制作便携库是一个不错的选择。 https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/#div-comment-136675 – Ziv

+0

@Ziv该评论已过时,请参阅[.NET Framework 4.6.1支持。 NET标准2.0](https://github.com/dotnet/standard/blob/master/docs/netstandard-20/README.md#net-framework-461-supporting-net-standard-20)。尽管避免使用.Net Standard 1.5和1.6更好,因为特定于它们的成员在运行时将无法在.Net 4.6.1上运行。 – svick

+0

谢谢!这就是我需要的! – Eastrall

相关问题