多框架Nuget安装不正确的框架

时间:2017-10-25 07:47:53

标签: nuget .net-3.5 .net-standard .net-4.6.1

我创建了一个针对.Net 3.5和Net Standard 2.0的nuget。当我在.Net 3.5项目上安装nuget时,会安装正确版本的nuget。但是,当我尝试在.Net 4.6.1项目上安装相同的nuget时,安装了net35版本,而不是Net Standard 2.0。我认为.Net 4.6.1与Net Standard 2.0兼容(根据官方微软文档:https://docs.microsoft.com/en-us/dotnet/standard/net-standard)。

我错过了什么,或者nuget包装不正确?

1 个答案:

答案 0 :(得分:1)

NuGet并不像那样工作。 NuGet将最具体的目标框架用于它可以找到的项目。由于NuGet包中有一个以.NET Framework为目标的程序集,因此对于面向.NET Framework的项目,它将使用该程序集而不是.NET Standard程序集。

如果NuGet包没有lib / net35文件夹,那么如果使用最新版本的NuGet,.NET Framework 4.6.1项目将使用.NET Standard 2.0程序集。

如果要将不同的程序集用于.NET 4.6.1项目,则需要在NuGet包中的lib / net461文件夹中安装程序集。