c# - 有没有办法确定 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?
解决方案
是的,有一个简单的方法。
FuGet列出了有关 NuGet 包的许多详细信息,包括目标框架的哪些版本。例如,Microsoft.AspNetCore.SignalR.Client 3.1.2 以 netstandard2.0 为目标。
一个方便的快捷方式是您正在查看包的 NuGet 页面,只需在 URL 栏中使用“fuget”重播“nuget”即可轻松访问 Fuget 页面。
推荐阅读
- java - 运行 javafx 可执行 jar 文件时出现多个错误
- ruby-on-rails - 推送到 Heroku 时解析 Gemfile 时出错
- c++ - 为什么以下 `std::transform` 示例需要函数指针而不是函数对象?
- excel - 如何在 VBA 中格式化 OLEObject?
- r - 与 NA 匹配的值 - 缺失值 - 使用 mutate
- python - 如何在类与实例上进行单一调度
- python - 如何在python 3中删除文件中不超过某个字符的行
- r - 用 NA 替换行中的第一个重复元素,同时保留其余重复元素
- javascript - 在 Google Apps 脚本中找不到范围。如何做一个循环?
- c# - 为 Swagger 的 multipart/form-data 中的文件指定内容类型