Microsoft.AspNetCore.Authentication.Abstractions
сам по себе устарел и теперь является частью Microsoft.AspNetCore.App.Ref
пакета. Но этот пакет является внутренней реализацией .NET Core SDK и не предназначен для использования в качестве обычного PackageReference . Хорошо, но я хочу использовать интерфейсы IClaimsTransformation и IHttpContextAccessor, например, в библиотеке, а не в реальном приложении. Изменение ссылки SDK библиотечного проекта с Microsoft.NET.Sdk
на Microsoft.NET.Sdk.Web
приводит к появлению других проблем, поскольку это предназначено для запускаемого приложения.
Итак, как мне создать библиотеку, которая сможет использовать эти типы? Какой пакет мне следует добавить или на какой SDK мне следует перейти?
Обновлять
@yehor-androsov указал мне на FrameworkReference
. Это тот самый. Более подробная информация: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore?view=aspnetcore-8.0&tabs=visual-studio
Да, это решает проблему! Спасибо. Такой шаблон должен существовать... было бы проще.
@YehorAndrosov, пожалуйста, продвигайте комментарий к ответу. Спасибо
Второй дубликат немного объясняет, когда и почему это произошло.
Раньше я конвертировал проект своей библиотеки в консольное приложение с помощью пустого основного метода Program.cs, поскольку для Web SDK требуется, чтобы проект был исполняемым, но вместо этого в вашу библиотеку можно включить ссылку на Framework.
<FrameworkReference Include = "Microsoft.AspNetCore.App" />
Отличное объяснение того, какая ссылка на Framework находится здесь:
Что на самом деле делает <FrameworkReference Include="Microsoft.AspNetCore.App" /> в .NET Core 3+?
<FrameworkReference Include = "Microsoft.AspNetCore.App" /> ?