2016-11-10 128 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

相關問題