2017-06-23 67 views
5

我创建了一个.NET核心类库包,并上传到nuget.org为什么.netstandard 1.4是NetStandard.Library 1.6?

相关内容部分是说,我的项目依赖于.NetStandard 1.4,大于1.6

NetStandard.Library更高为什么版本号中存在这样的混淆不匹配? 是不是.NetStandard和NetStandard.Library应该是同一件事?或者他们是不同的东西?

,这里是我的.csproj

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>netstandard1.4</TargetFramework> 
    <PackageVersion>2.0.1</PackageVersion> 
    <AssemblyName>currency</AssemblyName> 
    </PropertyGroup> 
</Project> 

,并链接到我的项目:

https://www.nuget.org/packages/currency/

+0

.NET标准只是本文中的一组API,而.NET标准库是这种API的实际实现。由于SDK将为您解析.NET标准库版本,因此请勿打扰太多。 –

回答

5

我发现一个有趣的网页有关.NETStandard.Library:

What is the .NETStandard.Library metapackage?

On this p年龄笔者说以下内容:

所以,即使你的项目的目标是.NET标准版本1.3(多目标),你仍然可以使用最新的NETStandard.Library软件包版本(1.6.1当时的写作)。该软件包本身的版本,主要是因为它还包含各种工具支持,如.NET标准版本的列表。


在微软的文档,我发现你的问题的以下信息:

它可能看起来很奇怪目标netstandard1.3但使用1.6.0版本NETStandard的。图书馆。这是一个有效的用例,因为元包支持旧的netstandard版本。可能出现这种情况,您已经对1.6.0版本的元数据包进行了标准化,并将其用于您的所有库,这些库针对各种网络标准版本。采用这种方法,您只需要恢复NETStandard.Library 1.6.0而不是早期版本。

链接:Look at .NetStandard

我认为,这将永远使用最新版本的.NETStandard.Library的,因为它是与旧版本.NETStandard的兼容,这是只有引用和一个元数据包一套标准的.Net API。所以它不应该是一个问题,如果你的软件包使用.NETStandard.Library版本1.6.1

注意:如果你使用.NETStandard 2.0并且你使用.NETStandard.Library版本1.6.1,它不能工作!


更新:在这个答案的评论一样svick提的.NETStandard.Library的最低版本是1.6.0版本!

+0

你的文章使得它听起来像你*可以*决定使用'NETStandard.Library'版本1.3。但是你不能,那个版本不存在,只有1.6.0+。 – svick

+0

@svick谢谢,我已经更新了我的答案。 –

相关问题