首页 > 解决方案 > 有没有办法确定 NuGet 包所针对的 .Netstandard 版本?

问题描述

最近我尝试将 SignalR dll 导入 Unity 项目(支持 .NET Standard 2.0)。NuGet 包 -> Microsoft.AspNetCore.SignalR.Client 当前版本为 3.1.2。以下是列出的依赖项:

.NET 标准,版本=v2.0

Microsoft.AspNetCore.Http.Connections.Client

(>= 3.1.2) Microsoft.AspNetCore.SignalR.Client.Core (>= 3.1.2)

但是,当我将这些 dll 移到 Unity 项目中时,我遇到了一个错误:

错误 CS1705 程序集 'Microsoft.AspNetCore.SignalR.Client.Core' 标识为 'Microsoft.AspNetCore.SignalR.Client.Core, Version=3.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' 使用 'netstandard, Version=2.1.0.0 ,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51',其版本高于引用的程序集'netstandard',标识为'netstandard,版本=2.0.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51'

这对我来说很有意义,因为我不希望 Unity 支持 2.1 版(.NET Standard 文档中的表格指出 2.0 是 Unity 的最新版本。我可以将包降级到 1.1 版,一切正常正如预期的那样(至少这个错误消失了)。我通过检查每个版本来确定选择哪个版本的 SignalR.Client,安装/复制直到错误消失。

1.1.0 的依赖项是相同的(除了 Core 和 Client 包现在列为(>=1.1.0)而不是(>= 3.1.2).

问题: 有没有比猜测和检查更好的方法来确定需要哪个版本的 .NET Standard,也许某个地方的规范显示了要使用的包需要支持哪个版本的 .NET Standard?

标签: c#.netunity3d.net-standard

解决方案


是的,有一个简单的方法。

FuGet列出了有关 NuGet 包的许多详细信息,包括目标框架的哪些版本。例如,Microsoft.AspNetCore.SignalR.Client 3.1.2 以 netstandard2.0 为目标。

一个方便的快捷方式是您正在查看包的 NuGet 页面,只需在 URL 栏中使用“fuget”重播“nuget”即可轻松访问 Fuget 页面。


推荐阅读