升级 SignalR

Upgrading SignalR

在下面的解决方案中linkSignalR安装的是1.0.1版本

SignalR 没有出现在 NuGet 包列表中,所以我不知道如何升级它。它出现在 SDK -> Microsoft.AspNetCore.App (2.1.1) 下,因此它是作为它的依赖项安装的。

我尝试通过使用 NuGet 安装最新的 SignalR 来升级它,但代码没有获取最新版本。我知道这一点,因为当我控制单击 SignalR 类型时,它会打开一个新文件,它说它正在使用:Assembly location: C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.signalr.core.0.1\lib\netstandard2.0\Microsoft.AspNetCore.SignalR.Core.dll

这种情况下如何升级SignalR?

尝试从 NugetFallbackFolder 中删除 signalR .dll 文件,然后我希望它在非后备文件夹中查找相关的 .dll 文件

ASP.NET Core SignalR 是 ASP.NET Core 的一个组件,因此您无需单独升级它。 ASP.NET 核心捆绑在托管平台中。因此,要升级 ASP.NET Core SignalR(或 ASP.NET Core),您需要下载更新的 .NET SDK 和 build/run 您的应用程序以及更新的运行时(更改 global.json 的 sdk section,如果你有,否则默认使用最新的。使用dotnet --info查看)。

你说你的应用目前使用的是 Microsoft.AspNetCore.App 的 v2.1.1,这告诉我你是 运行 .NET Core 2.1。在 https://dotnet.microsoft.com/download 上,.NET Core 的最新版本是 2.2,所以有可用的更新,尽管我不知道它会包含对 SignalR 的哪些更改。

编辑:您与两个版本的 SignalR 链接的页面清楚地说明了 NuGet 包的名称,但也向您展示了 Microsoft.AspNet.SignalR 与 ASP.NET 一起工作(System.Web ) 和 OWIN 服务器,而 Microsoft.AspNetCore.SignalR 使用 ASP.NET 核心服务器。由于您的应用使用的是 Microsoft.AspNetCore.App,因此您无法选择要使用哪个版本的 SignalR。如果要使用另一个,则必须创建一个使用 .NET Framework ASP.NET(使用 System.Web)或使用 OWIN 库的新项目。

至于 Microsoft.AspNetCore.SignalR NuGet 包,如果您查看依赖项,您会发现它依赖于 ASP.NET Core 2.2 的一部分,因此与您的 ASP.NET 核心 2.1 应用程序。您可以尝试添加对最新 SignalR 包的引用,但是当我尝试恢复项目时,我收到了这些错误消息:

C:\git\test\aspnetcoretest\aspnetcoretest.csproj : warning NU1608: Detected package version outside of dependency constraint: Microsoft.AspNetCore.App 2.1.1 requires Microsoft.AspNetCore.SignalR (>= 1.0.1 && < 1.1.0) but version Microsoft.AspNetCore.SignalR 1.1.0 was resolved.

C:\git\test\aspnetcoretest\aspnetcoretest.csproj : error NU1107: Version conflict detected for Microsoft.AspNetCore.Authentication.Abstractions. Install/reference Microsoft.AspNetCore.Authentication.Abstractions 2.2.0 directly to project aspnetcoretest to resolve this issue.

C:\git\test\aspnetcoretest\aspnetcoretest.csproj : error NU1107: aspnetcoretest -> Microsoft.AspNetCore.SignalR 1.1.0 -> Microsoft.AspNetCore.Http.Connections 1.1.0 -> Microsoft.AspNetCore.Authorization.Policy 2.2.0 -> Microsoft.AspNetCore.Authentication.Abstractions (>= 2.2.0)

C:\git\test\aspnetcoretest\aspnetcoretest.csproj : error NU1107: aspnetcoretest -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.AspNetCore.Authentication.Abstractions (>= 2.1.1 && < 2.2.0).

Restore failed in 964.82 ms for C:\git\test\aspnetcoretest\aspnetcoretest.csproj.

因此,正如我在第一段第一句中所说的那样,您不要单独升级它。如果您想使用较新的 SignalR,请编辑您的 csproj 并将 <TargetFramework>netcoreapp2.1</TargetFramework> 更改为 <TargetFramework>netcoreapp2.2</TargetFramework>。如果尚未安装 .NET Core 2.2 SDK,则需要安装。