.NET Standard NuGet跨平台兼容性

时间:2018-02-08 22:16:14

标签: .net nuget .net-core .net-standard

我正在研究一种创建可由.NET 4.5.1+和.NET Core 1.0+应用程序使用的NuGet包的方法。我应该能够使用.NET标准1.0框架吗?如果我构建的这个NuGet解决方案依赖于.NET Core NuGet会不会有问题?这有意义吗?

2 个答案:

答案 0 :(得分:2)

  

我应该能够使用.NET标准1.0框架吗?

多目标可能更容易;您可以使用<TargetFrameworks>net451;netstandard1.0</TargetFrameworks>或类似内容在.csproj中执行此操作;但是:.NET 4.5.1(net451)支持.NET Standard 1.2及更低版本,因此1.0应该没问题。

  

如果我构建的这个NuGet解决方案依赖于.NET Core NuGet会不会很重要?

.NET Core是一个框架,而不是标准;通常,它是针对.NET Core的应用程序(exes) - 库以.NET标准为目标。

答案 1 :(得分:0)

  

我正在研究一种创建可由.NET 4.5.1+和.NET Core 1.0+应用程序使用的NuGet包的方法。我应该能够使用.NET标准1.0框架吗?

使用this table以查明特定框架是否实现某些版本的.NET Standard。

.Net Framework 4.5.1实现了v1.2,因此您的问题的答案是“是” - 您可以使用v1.0。但是,请确保v1.0具有足够的API。

谈到@ MarcGravell的评论

  

多目标可能更容易;

我会说你不应该这样做,除非你有可执行的应用程序而不是共享的类库。始终努力将.NET Standard用于类库项目。

  

我正在构建的这个NuGet解决方案是否具有依赖性   在.NET Core NuGet上?这有意义吗?

一旦定位.NET Standard或.NET Core,就不需要添加任何其他运行时依赖项。所有这些都将被隐式添加,并将在 deps.json 文件中提及。