And*_*ira 7 c# .net-core .net-standard
我创建了一个.net核心类库包并将其上传到nuget.org
在依赖关系部分说我的项目依赖于.NetStandard 1.4,即NetStandard.Library高于1.6
为什么版本号中存在这样的混淆不匹配?是不是.NetStandard和NetStandard.Library应该是同一个东西?或者他们是不同的东西?
这是我的.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.4</TargetFramework>
<PackageVersion>2.0.1</PackageVersion>
<AssemblyName>currency</AssemblyName>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
以及我项目的链接:
我找到了一个关于.NETStandard.Library的有趣页面:
在此页面上,作者说出以下内容:
因此,即使您的项目针对的是.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版本!