.NET 标准程序集 : create nuget packages that can be used by . NET Core 和由本地 Nuget.Server 托管的完整 .NET

标签 .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 包的引用吗?

路易斯

最佳答案

如果你看官方.NET standard documentation 你可以看到 .Net standard 2.0 在 .Net framework 4.6.1 及更高版本上受支持,但你需要安装相关的 .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

关于.NET 标准程序集 : create nuget packages that can be used by . NET Core 和由本地 Nuget.Server 托管的完整 .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47740820/

相关文章:

c# - 可以从字符串或内存流加载 App.Config 吗?

c# - Web 开发框架,兼容 .net 3.5 +

在 Visual Studio Team Services 构建中,Nuget 还原包开始失败

c# - 无法加载文件或程序集 'Microsoft.Practices.EnterpriseLibrary.Common' 或其依赖项之一

c# - 在 NetStandard 2.0 类库中使用 Newtonsoft 库

c# - 如何使用 .NET Standard 和 Entity Framework Core 为现有数据库创建 Entity Framework edmx 文件?

c# - 在C#类库中传递上下文,在不使用static的情况下寻找 "easy"的方式

.net - VB6 WinSock TCP 客户端和 .NET TCP 服务器

c# - 在 C# 中将图像转换为纯黑白的最快方法是什么?

visual-studio-2015 - NuGet 安装包错误(无法找到兼容的版本)