WebSocketTransport在类库(Portable)中不可用

时间:2016-01-03 20:47:01

标签: c# wpf websocket uwp

我想弄清楚为什么NuGet没有下载Microsoft.AspNet.SignalR.Client的正确版本。 为了使这个变得容易理解,这是我的项目:

  1. 一个针对.NET 4.6的WPF项目
  2. 根据新项目对话框
  3. 定位.NET 4.6的UWP项目
  4. 根据“目标”属性,定位.NET 4.6Windows Universal 10.0的类库(可移植)项目。
  5. 所有3个项目都有NuGet包Microsoft.AspNet.SignalR.Client,WPF和UWP项目都有类Microsoft.AspNet.SignalR.Client.Transports.WebSocketTransport可用。如果我将在WPF项目中创建的类复制到UWP项目,它会找到所有引用并且它不会给我任何错误;但是,如果我尝试对类库执行相同操作,则无法找到WebSocketTransport类。

    如果类库项目与UWP项目具有相同的目标,为什么WebSocketTransport类不可用?

    类库(可移植)project.json:

    {
        "supports": 
        {
            "net46.app": {},
            "uwp.10.0.app": {}
        },
        "dependencies": {
            "Microsoft.AspNet.SignalR.Client": "2.2.0",
            "Microsoft.NETCore": "5.0.0",
            "Microsoft.NETCore.Portable.Compatibility": "1.0.0"
         },
         "frameworks": {
             "dotnet": {
                "imports": "portable-net452+win81"
            }
        }
    }
    

    通用Windows project.json:

    {
        "dependencies": 
        {
            "Microsoft.AspNet.SignalR.Client": "2.2.0",
            "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
        },
        "frameworks": 
        {
            "uap10.0": {}
        },
        "runtimes": 
        {
           "win10-arm": {},
           "win10-arm-aot": {},
           "win10-x86": {},
           "win10-x86-aot": {},
           "win10-x64": {},
           "win10-x64-aot": {}
        } 
    }
    

    有什么方法可以让类库项目下载包含WebSocketTransport方法的NuGet包?我需要使用的SignalR集线器只允许使用WebSockets。

1 个答案:

答案 0 :(得分:0)

我能够通过使用AutoTransport类来“破解”这个,它似乎在联系Hub时正确地选择了WebSockets传输,否则它将无法连接:

fnewton