我正在做一個網絡庫(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