最近,我尝试将SignalR dll导入到一个统一项目(对.NET标准2.0的支持)。NuGet包-> Microsoft.AspNetCore.SignalR.Client当前的版本为3.1.2。以下是所列的依赖项:
.NETStandard,Version=v2.0 Microsoft.AspNetCore.Http.Connections.Client (>= 3.1.2) Microsoft.AspNetCore.SignalR.Client.Core (>= 3.1.2)
但是,当我将这些dll移到中时,会遇到一个错误:
错误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,Version=2.0.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51’的引用程序集'netstandard‘。
这对我来说很有意义,因为我不希望Unity2.1支持Version2.1( .NET标准文档中的表指出2.0是最新的UnityforUnity2.0)。我可以将包降级到1.1版本,一切都按预期工作(至少这个错误消失了)。我通过遍历每个版本,安装/复制,直到错误消失,来决定选择哪个版本的SignalR.Client。
1.1.0的依赖项是相同的(除了核心包和客户端包现在被列为(>=1.1.0)而不是(>= 3.1.2) )。
问题:是否有一种比猜测和检查更好的方法来确定.NET标准的哪个版本是必需的,也许某个地方的规范可以显示要使用的包需要支持哪个版本的.NET标准?
发布于 2020-03-10 20:17:49
是的,有一个简单的方法。
FuGet列出了许多关于NuGet包的详细信息,包括哪些版本的框架是针对的。例如,Microsoft.AspNetCore.SignalR.Client 3.1.2的目标是netstandard2.0。
一个方便的快捷方式是,您正在查看NuGet页面的一个包,您可以轻松地到达Fuget页面,只需在地址栏中使用"fuget“重放"nuget”即可。
https://stackoverflow.com/questions/60625186
复制相似问题