【发布时间】:2017-02-05 01:33:57
【问题描述】:
我正在尝试为 SignalR 创建 Xamarin.Forms PCL 客户端。我发现的每个教程都是关于如何将 SignalR 添加到 Xamarin.Android 或 Xamarin.iOS。如何将 SignalR 添加到 Xamarin.Forms 项目?
- 是否应该创建一个单独的 PCL,将其称为“代理”,然后在 Xamarin.iOS、Android 和 Windows Mobile 项目中使用此 PCL?
- 如果 1),我是否应该在每个项目中也添加 SignalR(除了 PCL,我真正使用它的地方)?
- 是否应该在创建 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 配置文件中不存在
我完全迷路了。
我试过了:
仅在 PCL 上安装 nuget - 错误
在每个项目上安装 - 错误
创建新的 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