При создании веб-приложения ASP.NET Core 2.1 вы получаете файл проекта, подобный следующему:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
Microsoft.AspNetCore.App
Версия пакета NuGet 2.1.11 зависит отMicrosoft.Extensions.DependencyInjection
, с явным ограничением версии "(> = 2.1.1 && <2.2.0)". </p>
Если вы добавляете зависимость непосредственно в веб-приложение:
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version=">= 2.2.0" />
тогда вы получите одно предупреждение (а не ошибку):
Detected package version outside of dependency constraint: Microsoft.AspNetCore.App 2.1.1 requires
Microsoft.Extensions.DependencyInjection.Abstractions (>= 2.1.1 && < 2.2.0)
but version Microsoft.Extensions.DependencyInjection.Abstractions 2.2.0 was resolved.
Теперь я подозреваю , что это нормально ... но было бы лучше чтобы ваша библиотека зависела от самой ранней версии (в той же основной версии) пакета внедрения зависимостей, который содержит все необходимые вам функции.К сожалению, Microsoft.AspNetCore.App имеет здесь верхнюю границу ограничения - не имеет особого смысла (IMO) привязывать к определенной вспомогательной версии, учитывая, что 2.2.0 должна быть совместимой с2.1.x, если SemVer соблюден должным образом.Тем не менее, ограничение есть, и именно это вызывает предупреждение.
Если 2.0.0 (из пакета абстракции внедрения зависимостей) содержит все, что вам нужно, я бы просто использовал это.Каждое веб-приложение ASP.NET Core будет использовать требуемую версию, большую или равную 2.0.0, и все должно быть хорошо для нескольких версий ASP.NET Core без предупреждений.