如何强制降级 dotnet 核心中的传递依赖

时间:2021-01-03 13:53:39

标签: c# .net-core nuget

我的应用程序 A 依赖于 nuget 库 B 和使用 csproj 中的 PackageReference 的 nuget 库 C 版本 1.1.1。

<PackageReference Include="B" Version="1.0.0" />
<PackageReference Include="C" Version="1.1.1" />

但是,库 B 依赖于库 C >= 1.1.2。

<PackageReference Include="C" Version="1.1.2" />

我无法更改我的应用以在 C 版本 1.1.2 上运行,而且我知道 B 可以在 C 版本 1.1.1 上正常运行。

如何强制我的应用 A 使用 C 版本 1.1.1 运行?具体来说,我需要删除编译器错误 CS1705。以前在完整框架中,我会使用绑定重定向,但我知道这些在 dotnet 核心中不可用。

A
- B
- C (v = 1.1.1)


B
- C (v >= 1.1.2)

1 个答案:

答案 0 :(得分:5)

我不确定这是否能解决您的 CS1705 问题,但要获得包 C 的 1.1.1 的确切版本,那么您可以使用 Version Ranges

例如。 <PackageReference Include="C" Version="[1.1.1]" />

您也可以尝试使用 implicit versioning 并让构建过程为您决定。您将从 Version

中删除 <PackageReference /> 属性

例如。 <PackageReference Include="C" />