#c# #nuget #signalr
#c# #nuget #signalr
Вопрос:
В следующем решении, по ссылке, установлен SignalR версии 1.0.1
SignalR не отображается в списке пакетов NuGet, поэтому я не знаю, как его обновить. Он отображается под SDK -> Microsoft.AspNetCore.App (2.1.1)
, поэтому он устанавливается как зависимость от этого.
Я попытался обновить его, установив последнюю версию SignalR с помощью NuGet, но код не поддерживает последнюю версию. Я знаю это, потому что, когда я нажимаю на тип SignalR, он открывает новый файл, в котором указано, что он использует: Assembly location: C:Program FilesdotnetsdkNuGetFallbackFoldermicrosoft.aspnetcore.signalr.core1.0.1libnetstandard2.0Microsoft.AspNetCore.SignalR.Core.dll
Как обновить SignalR в этом сценарии?
Ответ №1:
ASP.NET Ядро SignalR является компонентом ASP.NET Ядро, поэтому вы не обновляете его отдельно. ASP.NET Ядро входит в комплект платформы хостинга. Следовательно, для обновления ASP.NET Основной SignalR (или ASP.NET Core), вы загружаете более новый .NET SDK и собираете / запускаете свое приложение с более новой средой выполнения (измените global.json
раздел sdk, если он у вас есть, в противном случае он обычно использует последнюю версию по умолчанию. Используйте dotnet --info
для проверки).
Вы сказали, что ваше приложение в настоящее время использует версию 1.1.1 от Microsoft.AspNetCore.App, который сообщает мне, что вы используете .NET Core 2.1. Наhttps://dotnet.microsoft.com/download последняя версия .NET Core — 2.2, поэтому доступно обновление, хотя я понятия не имею, какие изменения в SignalR оно будет включать.
редактировать: На странице, которую вы связали с двумя версиями SignalR, четко указаны названия пакетов NuGet, но также показано, что Microsoft.AspNet.SignalR работает с ASP.NET (Система.Веб-серверы) и OWIN, в то время как Microsoft.AspNetCore.SignalR работает с ASP.NET Основной сервер. Поскольку ваше приложение использует Microsoft.AspNetCore.App, у вас нет выбора, какую версию SignalR использовать. Если вы хотите использовать другой, вам нужно создать новый проект, который использует либо .NET Framework ASP.NET (который использует System.Web) или использует библиотеки OWIN.
Что касается Microsoft.Пакет NuGet AspNetCore.SignalR, если вы посмотрите на зависимости, вы увидите, что это зависит от вещей, которые являются частью ASP.NET Ядро 2.2 и, следовательно, несовместимо с вашим ASP.NET Приложение Core 2.1. Вы можете попробовать добавить ссылку на новейший пакет SignalR, но когда я попытался, при восстановлении проекта я получил эти сообщения об ошибках:
C:gittestaspnetcoretestaspnetcoretest.csproj : предупреждение NU1608: Обнаружена версия пакета, выходящая за рамки ограничения зависимости: Microsoft.Для AspNetCore.App 2.1.1 требуется Microsoft.AspNetCore.SignalR (>= 1.0.1 amp;amp; < 1.1.0), но версия Microsoft.Проблема AspNetCore.SignalR 1.1.0 была решена.
C:gittestaspnetcoretestaspnetcoretest.csproj : ошибка NU1107: обнаружен конфликт версий для Microsoft.AspNetCore.Проверка подлинности.Абстракции. Установите / обратитесь к Microsoft.AspNetCore.Проверка подлинности.Абстракции 2.2.0 непосредственно в project aspnetcoretest для решения этой проблемы.
C:gittestaspnetcoretestaspnetcoretest.csproj : ошибка NU1107: aspnetcoretest -> Microsoft.AspNetCore.SignalR 1.1.0 -> Microsoft.AspNetCore.Http.Connections 1.1.0 -> Microsoft.AspNetCore.Авторизация.Политика 2.2.0 -> Microsoft.AspNetCore.Проверка подлинности.Абстракции (>= 2.2.0)
C:gittestaspnetcoretestaspnetcoretest.csproj : ошибка NU1107: aspnetcoretest -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.AspNetCore.Проверка подлинности.Абстракции (>= 2.1.1 amp;amp; < 2.2.0).
Сбой восстановления через 964,82 мс для C:gittestaspnetcoretestaspnetcoretest.csproj .
Итак, как я сказал в первом предложении первого абзаца, вы не обновляете его отдельно. Если вы хотите использовать более новый SignalR, отредактируйте свой csproj и измените <TargetFramework>netcoreapp2.1</TargetFramework>
на <TargetFramework>netcoreapp2.2</TargetFramework>
. Вам необходимо установить .NET Core 2.2 SDK, если вы этого еще не сделали.
Комментарии:
1. В вашем ответе не упоминается, как обновить SignalR до последней версии на NuGet версии v2.4.0 Существует 2 версии SignalR , и я думал, что та, которая у меня была, была на NuGet.
2. Обе версии находятся на NuGet. Таблица в документе, на который вы ссылаетесь, даже содержит ссылки на пакеты на nuget.org . Я отредактировал свой ответ, чтобы было более ясно, что вы не можете обновить SignalR в ASP.NET Основной проект. Вы можете перейти только на более новую среду выполнения.
Ответ №2:
Попробуйте удалить the SignalR .затем я ожидал бы, что DLL-файлы из папки Nugetfallback будут искать соответствующие .файлы dll в папке, не являющейся резервной