Xamarin和Net Standard - 在该示例中,程序集解析如何工作

时间:2018-05-08 07:35:16

标签: c# compilation .net-core assemblies .net-standard

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是。

enter image description here

那么System.Memory, Version=4.0.1.0的引用首先来自何处?我隐藏了什么解决机制,我怎样才能更好地遵循和理解它?

更新

我开始明白发生了什么。如果没有人先完成,我会在完全弄明白之后发布答案。

SignalR库同时针对netstandard2.0netcore2.1System.Memory version 4.0.1.0位于Net Core 2.1运行时内,因此不是分离的nuget包。这就是为什么我在图像中的nuget依赖树下看不到它。

所以SignalR在编译netcore2.1时会使用它。我仍然不明白,netstandard2.0版本(Xamarin消耗的版本)如何通过引用它不会知道的组件来编译好。"约。

0 个答案:

没有答案