Я пытаюсь найти правильный способ использования метапакета Microsoft.AspNetCore.App.
Visual Studio при создании отчетов, для которых не следует указывать версию для Microsoft.AspNetCore.Appmeta package.
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.1" />
Поэтому я заменяю вышеприведенное на:
<PackageReference Include="Microsoft.AspNetCore.App" />
Следующая проблема заключается в том, что любые проекты или пакеты библиотеки классов, от которых зависит мой проект, содержат версионные ссылки на пакетыкоторые также включены в метапакет Microsoft.AspNetCore.App, нарушают сборку из-за конфликта версий.
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.1.1" />
Поэтому я также удаляю версии по этим ссылкам:
<PackageReference Include="Microsoft.Extensions.Configuration" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" />
Теперь, когда я запускаю dotnet restore
, я вижу предупреждение:
<Project> does not provide an inclusive lower bound for dependency
Microsoft.Extensions.Configuration. An approximate best match of
Microsoft.Extensions.Configuration 1.0.0 was resolved.
Так что теперь приложение собирается, но разрешается старая и, возможно, устаревшая версия пакета.
Кажется,как небольшая нагрузка на поддержание версий нижнего предела для всех этих пакетов.
Кажется, что путь наименьшего сопротивления может быть просто ссылаться на пакет Microsoft.AspNetCore.App (не версионный) вместо любых пакетов, которые содержатся в метапакете.Но тогда я неявно ссылаюсь на множество ненужных вещей (150 пакетов в настоящее время).Я мог бы хотеть повторно использовать библиотеку классов в проекте, который не является веб-ориентированным, и поэтому все упомянутые пакеты выглядят как неэффективное раздувание.Кроме того, прав ли я, полагая, что более новые версии Microsoft.AspNetCore.App могут сломать мое приложение при дальнейшей сборке?