簡體   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