如何在 ASP.NET 项目中为 project.assets.json 中的依赖项强制执行最低版本?

How to enforce a minimum version for dependencies in project.assets.json in ASP.NET project?

在我的 project.csproj 文件中,我有以下内容:

<PackageReference Include="System.Text.Encodings.Web" Version="5.0.1" />

但是,我的其他依赖项引入了较低版本的包作为它们的依赖项。例如,在我的 project.assets.json 中,我看到(拉取版本 4.5.0 的总共 18 个实例):

  "Microsoft.AspNetCore.Http.Abstractions/2.2.0": {
    "type": "package",
    "dependencies": {
      "Microsoft.AspNetCore.Http.Features": "2.2.0",
      "System.Text.Encodings.Web": "4.5.0" // <-- the problem
    },

如何为这些依赖项强制执行最低版本?更具体地说,4.5.1 以上的任何版本都可以满足我的合规性需求。

我发现如果您添加 ProjectReference,实际上可能会解决问题。这是一个很好的阅读:

https://docs.microsoft.com/en-us/nuget/concepts/dependency-resolution

添加 ProjectReference 后,project.assets.json 仍然有 4.5.0 作为依赖项,但它只引入了 ProjectReference 版本,在本例中为 5.0.1。