【问题标题】:SingalR in Xamarin.FormsXamarin.Forms 中的 SignalR
【发布时间】:2017-02-05 01:33:57
【问题描述】:

我正在尝试为 SignalR 创建 Xamarin.Forms PCL 客户端。我发现的每个教程都是关于如何将 SignalR 添加到 Xamarin.Android 或 Xamarin.iOS。如何将 SignalR 添加到 Xamarin.Forms 项目?

  1. 是否应该创建一个单独的 PCL,将其称为“代理”,然后在 Xamarin.iOS、Android 和 Windows Mobile 项目中使用此 PCL?
  2. 如果 1),我是否应该在每个项目中也添加 SignalR(除了 PCL,我真正使用它的地方)?
  3. 是否应该在创建 Xamarin.Forms 解决方案时添加到默认创建的 PCL?

感谢您的帮助,

这是我遇到的问题: 我有一个完整的 Xamarin.Forms PCL 项目。不过,我删除了所有 Windows 的东西。我刚刚离开了 PCL、iOS 和 Android 项目。有用!我只添加了 CocosSharp,但不要使用它。简单、空洞、从未接触过 Xamarin.Forms。然后我将 SingalR 添加到 PCL 项目中。遵守,运行 - 工作!但是当我添加这行时:

var connection = new HubConnection("http://localhost:52128");   

它甚至无法编译。我收到错误:

加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集“Newtonsoft.Json,版本=6.0.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed”。也许它在 Mono for Android 配置文件中不存在

我完全迷路了。

我试过了:

  1. 仅在 PCL 上安装 nuget - 错误

  2. 在每个项目上安装 - 错误

  3. 创建新的 PCL,在那里实现该行,将其添加为对主 PCL 的引用。从第二个 PCL 调用方法 - 错误。

【问题讨论】:

  • nuget.org/packages/Microsoft.AspNet.SignalR.Client你在使用这个包的时候遇到了什么错误?
  • @LexLi 感谢您的回复。请看我更新的问题
  • 你应该谷歌如何在 Xamarin.iOS 和 Xamarin.Android 入口项目中进行程序集重定向以映射到正确的 JSON.NET 版本。 NuGet 包中的引用版本(又名 6.0)太旧了。
  • @LexLi 我不确定我是否理解。这是否意味着,nuget 上的 singalR 包安装了旧版本的 JSON.NET?这是 nuget 包中的错误吗?

标签: c# xamarin xamarin.ios xamarin.android xamarin.forms


【解决方案1】:

我遇到了和你一样的错误,好像是在安装SignalRMicrosoft.AspNet.SignalR.Client包时,无法自动安装依赖包,引用被破坏了。

要解决此问题,您可以手动安装这些软件包。

分别从 Nuget 安装以下三个包:

SignalRMicrosoft.AspNet.SignalR.Client.

Newtonsoft.Json.

Microsoft.Net.Http.

【讨论】:

  • 有趣,这是谁的错? SignalR、Xamarin 和 Visual Studio 都受到 Microsoft 的支持,我在大约 2 年前的帖子中看到了这个问题(以及这个解决方案)。他们怎么可能没有修复它?我问是因为我不确定,也许我做错了什么。
  • 关于解决方案...看起来更好,可以编译,但我不确定问题是否已解决。虽然我无法连接到服务器。现在我不确定这是不是因为“localhost”而不是真正的服务器?
  • @IshThomas,我看到了一些discussions about this issue,这个解决方案应该可以解决问题,虽然我不明白为什么你的连接失败。
  • 因为是不同的问题,所以贴在这里:stackoverflow.com/questions/42080473/…
  • @IshThomas,我不熟悉 SignalR,你的这个问题是关于如何在 Xamarin 中使用这个包,我认为解决方案已经交付,你做了正确的事情来打开一个新线程讨论连接问题,但我认为它与此线程无关。
猜你喜欢
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 2020-06-06
相关资源
最近更新 更多