首页 > 解决方案 > 如何在 ASP.NET 项目中为 project.assets.json 中的依赖项强制执行最低版本?

问题描述

在我的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 的版本都可以满足我的合规性需求。

标签: c#asp.netvisual-studiodependenciescsproj

解决方案


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

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

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


推荐阅读