通用 Windows 平台和 SignalR(无法加载文件或程序集“System.Net,Version=2.0.5.0”)

4
当使用新的通用 Windows 平台和 SignalR 客户端(来自 Nuget)时,当设置网络凭据时会发生奇怪的事情。
以下代码完美无缺:
NetworkCredential Connection_Credentials = new NetworkCredential( "Name", "Password" );
Microsoft.AspNet.SignalR.Client.Connection Connection = new Microsoft.AspNet.SignalR.Client.Connection( "http://localhost/Bla" );

然而,当您以以下方式分配NetworkCredential时,即使在执行代码之前,运行时也会崩溃:
NetworkCredential Connection_Credentials = new NetworkCredential( "Name", "Password" );
Microsoft.AspNet.SignalR.Client.Connection Connection = new Microsoft.AspNet.SignalR.Client.Connection( "http://localhost/Bla" );
Connection.Credentials = Connection_Credentials;

错误信息为:"System.IO.FileNotFoundException: 无法加载文件或程序集'System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'或该程序集的某个依赖项。系统找不到指定的文件。\r\n at UAP2.MainPage.Page_Loaded(Object sender, RoutedEventArgs e)"。
这是我自己能修复的错误吗?(我尝试在另一个项目中执行相同操作)还是SignalR包(或其依赖项之一)存在问题?为什么它想要引用System.Net的2.0.5.0版本而不是4-*版本?

这是一个新的通用商店应用程序项目还是您正在升级更改现有项目?2.0.5.0表示Silverlight(或基于Silverlight的WP应用程序)。 - Pawel
这实际上是一个全新的UAP(或UWP)应用程序,是在Visual Studio 2015 RC中使用新模板创建的。对于这个新项目,我只是在MainWindow上添加了一个Loading订阅,安装了SignalR Client Nuget包,并将三行代码放在OnLoading方法中。 我已经将解决方案上传到: http://skyseract.com/Storage/UAP3.zip - Simon Mattes
1
不要使用非常通用的术语,如.netuap进行标记,使用visual-studio-2015进行标记可以获得更好的结果。 - BCdotWEB
1
@zeroskyx 我会在星期一查看这个。 - Pawel
1
甚至无法构建UAP。在两个不同的计算机上尝试过。Windows SDK已安装,但VS显示“找不到SDK“Microsoft.NET.CoreRuntime,Version=1.0”。我尝试了你的方法并创建了一个新的 - 结果相同。抱歉。 - Pawel
1
这里也有同样的问题。我将一个UAP项目添加到一个现有的工作解决方案中,之前我已经能够毫无问题地编写Windows 8.1通用应用程序。但是现在出现了相同的异常。我们还尝试了使用全新的UAP项目,结果仍然一样。 - MSicc
3个回答

3

3

我不知道如何解决这个问题,但我在GitHub上报告了一个问题。希望有人最终会研究它。

https://github.com/SignalR/SignalR/issues/3483

编辑:

我对SignalR.Client的源代码进行了一些测试,发现它在其DefaultHttpHandler(IConnection connection)构造函数中崩溃。很可能是在System.Net.Http.HttpClientHandler构造函数中(我没有该源代码)。


0
一个解决方法是编译不支持SL5的SignalR客户端DLL,以.NET 4.5、Windows 8、Windows Phone Silverlight 8和Windows Phone 8.1为目标,也称为PCL Profile 259。

就像我之前在Github上写的那样,这导致了一个整体无法构建的项目,因为有太多的依赖项被破坏了。 - MSicc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接