繁体   English   中英

SignalR 和 .NET 5 是否与运行 .NET Standard 2.1 的 Blazor 应用程序兼容?

[英]Is SignalR with .NET 5 compatible with a Blazor application running .NET Standard 2.1?

在设置一个简单的 Blazor SignalR 应用程序时做了一场噩梦。

根据文档,SignalR 在 .NET 5 中得到了很大改进。它与 .NET Core 3.1 不兼容。 这很公平。

如果我制作一个 Blazor web 程序集客户端,而不是在 .NET Core 中托管(我不明白这到底意味着什么,但我决定不选中该框来执行此操作),然后它在 .NET Standard 2.1 上运行

因此,如果我在 .NET 5 中设置 SignalR,然后尝试使用我的 .NET Standard 2.1 Blazor 客户端使用它,这样行得通吗? 如果不是我该怎么办?

--

编辑: 在此处输入图像描述

如果我制作一个 Blazor web 程序集客户端,而不是在 .NET Core 中托管(我不明白这到底意味着什么,但我决定不选中该框来执行此操作),然后它在 .NET Standard 2.1 上运行

如果您使用.NET Core 3.1创建 WASM 应用程序:

  • .NET 核心托管:将创建3个项目:

    • .Clientnetstandard2.1并使用Microsoft.NET.Sdk.Web SDK
    • .Server将是netcoreapp3.1并使用Microsoft.NET.Sdk.Web SDK
    • .Shared将是netstandard2.1并使用Microsoft.NET.Sdk SDK
  • 不是 .NET 核心托管:将创建 1 个项目,它是netstandard2.1并使用Microsoft.NET.Sdk.Web SDK

如果您使用.NET 5创建 WASM 应用程序

  • .NET 核心托管:将创建3个项目:

    • .Clientnet5.0并使用Microsoft.NET.Sdk.BlazorWebAssembly SDK
    • .Servernet5.0并且使用Microsoft.NET.Sdk.Web SDK
    • .Sharednet5.0并使用Microsoft.NET.Sdk SDK
  • 不是 .NET 核心托管:将创建 1 个项目,它是net5.0并使用Microsoft.NET.Sdk.BlazorWebAssembly SDK

因此,如果我在 .NET 5 中设置 SignalR,然后尝试使用我的 .NET Standard 2.1 Blazor 客户端使用它,这样行得通吗? 如果不是我该怎么办?

这应该不是问题。 为避免进一步混淆,您可以按照以下步骤轻松地将 .NET Core 3.1 WASM 应用程序升级到 .NET 5:

.csproj文件上:

  1. <Project Sdk="Microsoft.NET.Sdk.Web">更改为<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
  2. <TargetFramework.netstandard2.1</TargetFramework>更改为<TargetFramework.net5.0</TargetFramework>
  3. 删除<RazorLangVersion>3.0</RazorLangVersion>
  4. 删除 package 对Microsoft.AspNetCore.Components.WebAssembly.Build的引用
  5. 将所有其他软件包更新到最新的稳定5.0.0

确保你的机器上有正确的设置

  1. 最新visual studio https://visualstudio.microsoft.com/downloads/
  2. .NET 5 SDK https://do.net.microsoft.com/download/do.net/5.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM