sample on github说明了这个问题。您可以使用分支SignalR_rc1_final尝试它。
它是一个带有.Net标准库(Xamarin Forms)和iOS应用程序的解决方案。 在库中,我引用了nuget包AspNetCore Signalr Client
iOS项目不会通过链接构建。有一个错误说:
无法解析" System.Buffers.IBufferWriter`1"来自" System.Memory,Version = 4.0.1.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51"
我的问题是不关于信号器或错误驾驶错误。他们的github repo已经打开了一张票。
我想了解的是编译器尝试解析System.Buffers.IBufferWriter
中找到的System.Memory, Version=4.0.1.0
(已确认here)的原因?实际上,System.Memory
中的SignalR
是引用,但版本4.5.0-rc1
是。
那么System.Memory, Version=4.0.1.0
的引用首先来自何处?我隐藏了什么解决机制,我怎样才能更好地遵循和理解它?
更新
我开始明白发生了什么。如果没有人先完成,我会在完全弄明白之后发布答案。
SignalR库同时针对netstandard2.0
和netcore2.1
。 System.Memory version 4.0.1.0
位于Net Core 2.1运行时内,因此不是分离的nuget包。这就是为什么我在图像中的nuget依赖树下看不到它。
所以SignalR在编译netcore2.1
时会使用它。我仍然不明白,netstandard2.0
版本(Xamarin消耗的版本)如何通过引用它不会知道的组件来编译好。"约。