首页 > 解决方案 > 如何强制降级 dotnet core 中的交互依赖

问题描述

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

<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)

标签: c#.net-corenuget

解决方案


我不确定这是否会解决您的 CS1705 问题,但是要为包 C 提供 1.1.1 的确切版本,那么您将使用Version Ranges

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

您还可以尝试使用隐式版本控制,让构建过程为您决定。你会Version<PackageReference />

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


推荐阅读