我正在做一个网络库(https://github.com/Eastrall/Ether.Network),目前是针对.NET Core框架,但我希望同时支持.NET Core和.NET Framework(4. *).NET Core和.NET Framework的C#库
我听说在project.json
上增加一些行这是一个很好的解决方案吗?
有人可以帮助我吗?谢谢
我正在做一个网络库(https://github.com/Eastrall/Ether.Network),目前是针对.NET Core框架,但我希望同时支持.NET Core和.NET Framework(4. *).NET Core和.NET Framework的C#库
我听说在project.json
上增加一些行这是一个很好的解决方案吗?
有人可以帮助我吗?谢谢
是的,修改project.json
是你所需要的。它应该看起来像:
{
"version": "1.0.0",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.3": {
"imports": "dnxcore50"
}
}
}
下面是从official documentation映射.NET平台标准感兴趣平台的方案:
几个简单的音符:
- 如果一个库的目标是.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。
可能值得补充的是,最好避免使用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
@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
谢谢!这就是我需要的! – Eastrall
太模糊了,.net核心在范围上比.NET框架更受限制,我不明白这是如何实现的。 –
所以我不能在NuGet上为.NET Core和.NET Framework部署我的库? – Eastrall