WebSocketTransport在类库(可移植)中不可用



我正试图弄清楚为什么NuGet没有下载正确版本的Microsoft.AspNet.SignalR.Client。为了尽可能容易理解,以下是我的项目:

  1. 一个WPF项目,目标是.NET 4.6
  2. 一个UWP项目,根据新项目对话框以.NET 4.6为目标
  3. 类库(可移植)项目,根据"Targets"属性,以.NET 4.6Windows Universal 10.0为目标

所有3个项目都有NuGet包Microsoft.AspNet.SignalR.Client,WPF和UWP项目都有可用的类Microsoft.AspNet.SignalR.Client.Transports.WebSocketTransport。如果我将WPF项目中创建的类复制到UWP项目中,它会找到所有引用,并且不会给我任何错误;但是,如果我尝试对类库执行同样的操作,它将无法找到WebSocketTransport类。

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

类库(可移植)项目.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项目.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。

我能够通过使用AutoTransport类"破解"这一问题,该类在联系集线器时似乎正确选择了WebSockets传输,否则它将无法连接:

await connection.Start(new AutoTransport(new DefaultHttpClient()));

相关内容

  • 没有找到相关文章

最新更新