Совместим ли SignalR с .NET 5 с приложением Blazor под управлением .NET Standard 2.1?

Кошмар времени настраивает простое приложение Blazor SignalR.

Согласно документации, SignalR значительно улучшен в .NET 5. Он несовместим с .NET Core 3.1. Это достаточно честно.

Если я сделаю клиент веб-сборки Blazor, не размещенный в .NET Core (я не понимаю, что это на самом деле означает, но я решил не устанавливать флажок, чтобы это сделать), он будет работать на .NET Standard 2.1.

Итак, если я настрою SignalR в .NET 5, а затем попытаюсь использовать его с помощью моего клиента .NET Standard 2.1 Blazor, это сработает? Если нет, что мне делать?

--

Изменить:  введите описание изображения здесь


person NibblyPig    schedule 15.11.2020    source источник
comment
.NET Core 5 не существует, это просто .NET 5.   -  person Camilo Terevinto    schedule 15.11.2020
comment
›Если я сделаю клиент веб-сборки Blazor, не размещенный в .NET Core, он будет работать на .NET Standard 2.1. Если вы выберете .net 5.0, этого не произойдет.   -  person Brian Parker    schedule 15.11.2020
comment
@CamiloTerevinto Я не понимаю, я добавил скриншот, чтобы показать. В раскрывающемся списке указано, что ASP.NET Core 5.0 чем-то отличается?   -  person NibblyPig    schedule 15.11.2020
comment
@BrianParker Я поискал .NET Standard, и там говорится, что это API, а не реализация (для библиотек классов), но мое приложение Blazor, в котором говорится, что .NET Standard 2.1 может работать? Как такое возможно? я так растерялся   -  person NibblyPig    schedule 15.11.2020
comment
.NET Standard не может работать, это не приложение, это просто библиотека классов. У вас есть 2 варианта: использовать .NET Standard 2.1 и ограничиться ASP.NET Core 3.1 (из-за совместимости) или использовать .NET Core 5.   -  person Camilo Terevinto    schedule 15.11.2020
comment
Я не понимаю, у меня есть проект .NET Standard 2.1, и он буквально запускается. Вы нажимаете F5, и он открывает браузер, попадает в localhost и отображает страницы, представления и т. Д. Может быть, для веб-сборки все по-другому? В любом случае, когда я создал новый проект веб-сборки, он получил название .NET 5, поэтому я не знаю, как я создал первый. Возможно, это изменилось в обновлении VS.   -  person NibblyPig    schedule 15.11.2020
comment
Вы можете использовать их все без проблем! все они совместимы.   -  person Ali Borjian    schedule 17.11.2020


Ответы (1)


Если я сделаю клиент веб-сборки Blazor, не размещенный в .NET Core (я не понимаю, что это на самом деле означает, но я решил не устанавливать флажок, чтобы это сделать), он будет работать на .NET Standard 2.1.

Если вы создаете приложение WASM с помощью .NET Core 3.1:

  • .NET Core размещен: будет создано 3 проекта:

    • .Client is netstandard2.1 and using Microsoft.NET.Sdk.Web SDK
    • .Server будет netcoreapp3.1 и будет использоваться Microsoft.NET.Sdk.Web SDK
    • .Shared будет netstandard2.1 и будет использоваться Microsoft.NET.Sdk SDK
  • НЕ размещено в .NET Core: будет создан 1 проект netstandard2.1, использующий Microsoft.NET.Sdk.Web SDK.

Если вы создаете приложение WASM с помощью .NET 5

  • .NET Core размещен: будет создано 3 проекта:

    • .Client is net5.0 and using Microsoft.NET.Sdk.BlazorWebAssembly SDK
    • .Server это net5.0 и используется Microsoft.NET.Sdk.Web SDK
    • .Shared это net5.0 и используется Microsoft.NET.Sdk SDK
  • НЕ размещено в .NET Core: будет создан 1 проект net5.0, использующий Microsoft.NET.Sdk.BlazorWebAssembly SDK.

Итак, если я настрою SignalR в .NET 5, а затем попытаюсь использовать его с помощью моего клиента .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. Удалить ссылку на пакет для Microsoft.AspNetCore.Components.WebAssembly.Build
  5. Обновите все остальные пакеты до последней стабильной версии 5.0.0

Убедитесь, что у вас есть эти настройки на вашем компьютере.

  1. Последняя версия визуальной студии https://visualstudio.microsoft.com/downloads/
  2. Пакет SDK для .NET 5 https://dotnet.microsoft.com/download/dotnet/5.0
person nahidf    schedule 18.11.2020