由你决定是否升级。这些程序包只是以 V7.0.0 的名称发布的,因为它们与 .NET 7.0 一起发布。对于大多数(如果不是全部)的这些程序包,没有要求运行时必须是 .NET 7.0。只需将其视为该程序包的 V7.0 版本。您可以更新(甚至使用新功能)这些程序包,而不必更新应用程序的运行时。
检查对应包的依赖关系。例如,Microsoft.Extensions.DependencyInjection
7.0.0 指定了下一个受支持的框架和依赖项:
但是例如 Microsoft.AspNetCore.Authentication.JwtBearer
7.0.0 仅支持.NET 7(我猜测所有或几乎所有ASP.NET Core包的行为方式都是相同的):
因此,在理论上,您可以升级某些依赖项,但绝不能在不更新目标框架版本的情况下升级所有依赖项。一般情况下,我更喜欢将所有内容更新到下一个主要版本,或者什么都不更新(对于支持“绑定到运行时”版本控制的包)。
Microsoft.Bcl.AsyncInterfaces 7.0.0
:它在 NET 6 下也是必需的,但没有列为依赖项。因此,一切都可以正常构建,但在运行时失败,一旦需要该软件包,否则不需要。这意味着丑陋和不可预测的错误。或者到处都是令人讨厌的 MS.Bcl.AsyncInterfaces(可能还有其他的)引用。 - Erik Hart