Какой пакет SignalR установить для проекта сервера NET6?

У меня есть проект NET6, который является частью более крупного решения NET6 ASP.NET. В проекте по-прежнему упоминаются:

  1. Microsoft.AspNetCore.SignalR и
  2. Microsoft.AspNetCore.SignalR.Core

Которые теперь помечены как устаревшие.

Какие пакеты нужно установить для их замены?

Проблема в том, что в настоящее время SignalR находится в сборке, отдельной от основного проекта ASP.NET. Это связано с тем, что основной проект и несколько других проектов в решении используют концентраторы (с использованием конструктора внедрения зависимостей).

Если я изменю проект SignalR на

<Project Sdk = "Microsoft.NET.Sdk.Web">
    ...
</Project>

Я получаю следующую ошибку компиляции:

Error CS5001 Program does not contain a static 'Main' method suitable for an entry point

Итак, проблема в том, что у меня не может быть общей сборки с SignalR, на которую ссылаются несколько других проектов.


8
859
2

Ответы:

SignalR на стороне сервера в настоящее время является частью NET библиотека базовых классов. Вам не нужны никакие серверные пакеты. Классы пространства имен Microsoft.AspNetCore.SignalR просто есть.

Однако вам нужен клиентский пакет @microsoft/signalr@latest.

В случае возникновения дополнительных вопросов обратитесь к документация.


Решено

SignalR включен в общую структуру Microsoft.AspNetCore.App (документы). Измените SDK консольного приложения на Microsoft.NET.Sdk.Web:

<Project Sdk = "Microsoft.NET.Sdk.Web">
   ...
</Project>

Чтобы использовать общую платформу ASP.NET Core в проект библиотеки классов, добавьте элемент FrameworkReference для Microsoft.AspNetCore.App:

<ItemGroup>
    <FrameworkReference Include = "Microsoft.AspNetCore.App" />
</ItemGroup>