我的应用程序 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)
答案 0 :(得分:5)
我不确定这是否能解决您的 CS1705 问题,但要获得包 C 的 1.1.1 的确切版本,那么您可以使用 Version Ranges。
例如。 <PackageReference Include="C" Version="[1.1.1]" />
您也可以尝试使用 implicit versioning 并让构建过程为您决定。您将从 Version
<PackageReference />
属性
例如。 <PackageReference Include="C" />