简体   繁体   English

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

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

Having a nightmare of a time setting up a simple Blazor SignalR application.在设置一个简单的 Blazor SignalR 应用程序时做了一场噩梦。

According to documentation, SignalR is greatly improved in .NET 5. It's not compatible with .NET Core 3.1.根据文档,SignalR 在 .NET 5 中得到了很大改进。它与 .NET Core 3.1 不兼容。 That's fair enough.这很公平。

If I make a Blazor web assembly client, not hosted in .NET Core (I don't understand what that really means but I decided not to check the box to do it), then it runs on .NET Standard 2.1如果我制作一个 Blazor web 程序集客户端,而不是在 .NET Core 中托管(我不明白这到底意味着什么,但我决定不选中该框来执行此操作),然后它在 .NET Standard 2.1 上运行

So if I set up SignalR in .NET 5 and then try to consume it using my .NET Standard 2.1 Blazor client, would that work?因此,如果我在 .NET 5 中设置 SignalR,然后尝试使用我的 .NET Standard 2.1 Blazor 客户端使用它,这样行得通吗? If not what should I do?如果不是我该怎么办?

-- --

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

If I make a Blazor web assembly client, not hosted in .NET Core (I don't understand what that really means but I decided not to check the box to do it), then it runs on .NET Standard 2.1如果我制作一个 Blazor web 程序集客户端,而不是在 .NET Core 中托管(我不明白这到底意味着什么,但我决定不选中该框来执行此操作),然后它在 .NET Standard 2.1 上运行

If you create a WASM app using .NET Core 3.1 :如果您使用.NET Core 3.1创建 WASM 应用程序:

  • .NET Core hosted: There will be 3 projects created: .NET 核心托管:将创建3个项目:

    • .Client is netstandard2.1 and using Microsoft.NET.Sdk.Web SDK .Clientnetstandard2.1并使用Microsoft.NET.Sdk.Web SDK
    • .Server will be netcoreapp3.1 and using Microsoft.NET.Sdk.Web SDK .Server将是netcoreapp3.1并使用Microsoft.NET.Sdk.Web SDK
    • .Shared will be netstandard2.1 and using Microsoft.NET.Sdk SDK .Shared将是netstandard2.1并使用Microsoft.NET.Sdk SDK
  • NOT .NET Core hosted: There will be 1 project created, which is netstandard2.1 and using Microsoft.NET.Sdk.Web SDK不是 .NET 核心托管:将创建 1 个项目,它是netstandard2.1并使用Microsoft.NET.Sdk.Web SDK

If you create a WASM app using .NET 5如果您使用.NET 5创建 WASM 应用程序

  • .NET Core hosted: There will be 3 projects created: .NET 核心托管:将创建3个项目:

    • .Client is net5.0 and using Microsoft.NET.Sdk.BlazorWebAssembly SDK .Clientnet5.0并使用Microsoft.NET.Sdk.BlazorWebAssembly SDK
    • .Server is net5.0 and using Microsoft.NET.Sdk.Web SDK .Servernet5.0并且使用Microsoft.NET.Sdk.Web SDK
    • .Shared is net5.0 and using Microsoft.NET.Sdk SDK .Sharednet5.0并使用Microsoft.NET.Sdk SDK
  • NOT .NET Core hosted: There will be 1 project created, which is net5.0 and using Microsoft.NET.Sdk.BlazorWebAssembly SDK不是 .NET 核心托管:将创建 1 个项目,它是net5.0并使用Microsoft.NET.Sdk.BlazorWebAssembly SDK

So if I set up SignalR in .NET 5 and then try to consume it using my .NET Standard 2.1 Blazor client, would that work?因此,如果我在 .NET 5 中设置 SignalR,然后尝试使用我的 .NET Standard 2.1 Blazor 客户端使用它,这样行得通吗? If not what should I do?如果不是我该怎么办?

This should not be a problem.这应该不是问题。 To avoid any further confusion you can easily upgrade your .NET Core 3.1 WASM app to .NET 5 following these steps:为避免进一步混淆,您可以按照以下步骤轻松地将 .NET Core 3.1 WASM 应用程序升级到 .NET 5:

On .csproj file:.csproj文件上:

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

Make sure you have these setup properly on your machine确保你的机器上有正确的设置

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

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

相关问题 在 Linux 上运行的证书验证 .net 标准 2.1 - Certificate validation .net standard 2.1 running on linux 将Blazor支持添加到现有的ASP .NET Core 2.1 MVC应用程序中 - Add Blazor support to existing ASP .NET Core 2.1 MVC application SignalR .NET Client connecting to Azure SignalR Service in a Blazor .NET Core 3 application - SignalR .NET Client connecting to Azure SignalR Service in a Blazor .NET Core 3 application .Net Core 2.0 与.Net Core 2.1 兼容 - .Net Core 2.0 compatible with .Net Core 2.1 使用 Visual Studio 启动以 .net 标准 2.1 编写的应用程序 - Start an application that is written in .net standard 2.1 with visual studio 库升级到 .net 标准 2.1 - library upgrade to .net standard 2.1 在 C# / .NET Core 2.1 应用程序中运行 Powershell 5.1 - Running Powershell 5.1 in a C# / .NET Core 2.1 Application 使用.Net Framework 4.6.2在PC上运行.Net Standard 2.0应用程序 - Running a .Net Standard 2.0 Application on a PC with .Net Framework 4.6.2 Blazor应用程序Asp.Net Core 2.1中的命名空间中不存在使用INTEROP的错误 - Error in using INTEROP does not exist in the namespace in Blazor application Asp.Net Core 2.1 使用 blazor 加载外部 .NET Standard 2.0 程序集 - Loading an external .NET Standard 2.0 assembly with blazor
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM