.NET标准程序集:创建可由.NET Core使用的nuget包和由本地Nuget.Server托管的完整.NET

时间:2017-12-10 16:21:45

标签: .net nuget-package .net-standard nuget-server

我有一个针对netstandard 2.0的程序集,因此可以从.NET Core和完整的.NET Standard项目中使用它。我正在使用dotnet pack命令创建一个nuget包,然后将其推送到本地nuget主机服务器(按照here中的说明创建。

现在,由于netstandard基本程序集可以从.NET 4.7.1项目中使用,我认为当我从VS nuget包管理器UI列出我的本地nuget包时,我应该能够看到目标netstandard的nuget包(并且该项目是针对.NET 4.7.1而构建的。不幸的是,我设法让它显示的唯一方法是更改​​nuget.server设置,以便它不会按框架版本过滤返回的结果。

这是预期的行为吗?我不应该能够添加对具有目标.net标准的程序集的nuget包的引用吗?

路易斯

1 个答案:

答案 0 :(得分:0)

如果您查看官方.NET standard文档,您可以看到.Net framework 4.6.1及更高版本支持.Net标准2.0但您需要安装相关的.Net core 2.0 SDK才能工作。检查文档中的表格。你可能没有它想要使用它的地方。

另一个选择是在项目中添加经典.NET Framework和其他平台。然后,当您构建NuGet包时,它将包含另一个经典.NET框架的dll,因此它将始终有效。您可以通过查找以下元素<TargetFramework>netcoreapp2.0</TargetFramework>在项目中添加另一个目标平台,然后您可以将其更改为包括例如<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>以包括.NET 4.6.1。有关哪些值对目标框架有效的更多详细信息,请参阅文档。 Target Frameworks