我创建了一个.net核心类库包并将其上传到nuget.org
在依赖关系部分说我的项目依赖于.NetStandard 1.4,即NetStandard.Library高于1.6
为什么版本号中存在这样的混淆不匹配? Aren的.NetStandard和NetStandard.Library应该是同一个东西?或者他们是不同的东西?
这是我的.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.4</TargetFramework>
<PackageVersion>2.0.1</PackageVersion>
<AssemblyName>currency</AssemblyName>
</PropertyGroup>
</Project>
以及我项目的链接:
答案 0 :(得分:6)
我找到了一个关于.NETStandard.Library的有趣页面:
What is the .NETStandard.Library metapackage?
在此页面上,作者说出以下内容:
因此,即使您的项目针对的是.NET Standard 1.3版(或多目标),您仍然可以使用最新的NETStandard.Library软件包版本(撰写本文时为1.6.1)。软件包本身的版本主要是因为它还包含各种工具支持,例如.NET标准版本列表。
在Microsoft的文档中,我找到了有关您的问题的以下信息:
目标netstandard1.3可能看起来很奇怪,但使用1.6.0版本的NETStandard.Library。它是一个有效的用例,因为元数据包维护了对旧的netstandard版本的支持。您可能已经在1.6.0版本的元数据包上进行了标准化,并将其用于所有库,这些库针对各种netstandard版本。使用这种方法,您只需要恢复NETStandard.Library 1.6.0而不是早期版本。
我认为,它将使用最新版本的.NETStandard.Library,因为它与旧版本的.NETStandard兼容,并且它只是一个包含引用和一组标准.Net API的元数据包。因此,如果您的软件包使用.NETStandard.Library版本1.6.1
,那么这应该不是问题注意:如果您使用.NETStandard 2.0并使用.NETStandard.Library版本1.6.1,则无法使用!
更新:在本回答的评论中提到svick,.NETStandard.Library的最低版本是版本1.6.0!