Я только что обновил проект веб-API ASP.NET Core с .NET 6 до .NET 8. Я хотел бы удалить все устаревшие зависимости, но у меня возникли некоторые проблемы.
Например, при обновлении Microsoft.Data.SqlClient
с 3.1.0 до 5.2.0 я получаю следующую ошибку
Ошибка NU1605
Предупреждение как ошибка: обнаружено понижение версии пакета: System.Threading.Tasks с 4.3.0 до 4.0.11. Ссылка на пакет непосредственно из проекта, чтобы выбрать другую версию.
BD.Shared.DWA -> Microsoft.AspNetCore.Mvc.Core 2.2.5 -> Microsoft.Extensions.DependencyModel 2.1.0 -> Microsoft.DotNet.PlatformAbstractions 2.1.0 -> System.IO.FileSystem 4.0.1 -> время выполнения .win.System.IO.FileSystem 4.3.0 -> System.Threading.Tasks (>= 4.3.0)
BD.Shared.DWA -> Microsoft.AspNetCore.Mvc.Core 2.2.5 -> Microsoft.Extensions.DependencyModel 2.1.0 -> Microsoft.DotNet.PlatformAbstractions 2.1.0 -> System.IO.FileSystem 4.0.1 -> Система .Threading.Tasks (>= 4.0.11) BD.Shared.DWA D:\GIT\DWA\MAIN\BD.Shared.DWA\BD.Shared.DWA.csproj 1
Фактически, зависимость Microsoft.AspNetCore.Mvc.Core
, которая также устарела, содержит зависимость от System.Threading.Tasks
v4.0.11.
это файл проекта
<PropertyGroup Label = "Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Platforms>AnyCPU;x64</Platforms>
<RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
</PropertyGroup>
<ItemGroup>
<PackageReference Include = "HtmlAgilityPack" Version = "1.11.36" />
<PackageReference Include = "Microsoft.AspNetCore.Mvc.Abstractions" Version = "2.2.0" />
<PackageReference Include = "Microsoft.AspNetCore.Mvc.Core" Version = "2.2.5" />
<PackageReference Include = "Microsoft.AspNetCore.Mvc.Formatters.Json" Version = "2.2.0" />
<PackageReference Include = "Microsoft.Data.SqlClient" Version = "3.1.0" />
<PackageReference Include = "Microsoft.Extensions.Caching.Abstractions" Version = "6.0.0" />
<PackageReference Include = "Microsoft.Extensions.Configuration.Binder" Version = "7.0.4" />
<PackageReference Include = "MongoDB.Driver" Version = "2.15.0" />
<PackageReference Include = "System.Diagnostics.PerformanceCounter" Version = "7.0.0" />
<PackageReference Include = "System.Threading.Tasks" Version = "4.0.11" />
</ItemGroup>
<ItemGroup>
<Folder Include = "Properties\PublishProfiles\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include = "..\DWA.Logging\DWA.Logging.csproj" />
<ProjectReference Include = "..\DWA.Product.Configuration\DWA.Product.Configuration.csproj" />
</ItemGroup>
<ItemGroup>
<None Update = "BD.Shared.DWA.nlog">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update = "Config\BD.Shared.DWA.Production.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update = "Config\BD.Shared.DWA.Staging.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update = "Config\BD.Shared.DWA.Development.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update = "Config\BD.Shared.DWA.Local.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
Есть ли способ обновить Microsoft.Data.SqlClient
до 5.0.2?
Microsoft.AspNetCore.Mvc.Core
устарела, но это не более новая версия, чем ее можно заменить?
У вас явно установлен System.Threading.Tasks
— удалите.
Также удалите все пакеты Microsoft.AspNetCore.*
, поскольку они устарели — см. руководство Миграция с ASP.NET Core 2.2 на 3.0:
Большое количество пакетов NuGet не создается для ASP.NET Core 3.0. Такие ссылки на пакеты следует удалить из файла проекта.
Следовательно, эти пакеты больше не распространяются и поставляются вместе с самой платформой/средой выполнения.
Смотрите также:
привет, но удалив эти зависимости, я получил некоторые ошибки компиляции, например, класс TypeFilterAttribute больше не существует, мне нужно переписать код, используя другие классы, или я могу добавить какую-нибудь библиотеку вместо Microsoft.AspNetCore.*?
@FDB Он существует — посмотрите сами в разделе «Применяется к» TypeFilterAttribute
@FDB Не могу с уверенностью утверждать это, но, судя по представленной информации, вы можете найти этот ответ полезным.
добавив Microsoft.AspNetCore.Http.Abstractions 2.2.0, он компилируется, теперь мне нужно проверить, есть ли какая-то среда выполнения, вы очень помогли.
@FDB был рад помочь! Тем не менее не следует добавлять устаревшие пакеты (да это и не нужно). Если вам нужны материалы ASP.NET Core в библиотеке классов, добавьте FrameworkReference
, как указано в ответе, указанном в предыдущем комментарии.
Можете ли вы поделиться полным файлом csproj?