如何强制降级 dotnet core 中的传递依赖
How to force downgrade a transative dependency in 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 上正常工作。
如何使用 C 版本 1.1.1 强制我的应用程序 A 运行?具体来说,我需要删除编译器错误 CS1705。以前在完整框架中我会使用绑定重定向,但我知道这些在 dotnet 核心中不可用。
A
- B
- C (v = 1.1.1)
B
- C (v >= 1.1.2)
我不确定这是否会解决您的 CS1705 问题,但要为包 C 提供 1.1.1 的确切版本,您需要使用 Version Ranges.
例如。 <PackageReference Include="C" Version="[1.1.1]" />
您也可以尝试使用 implicit versioning,让构建过程为您决定。您将从 <PackageReference />
中删除 Version
属性
例如。 <PackageReference Include="C" />
我的名为 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 上正常工作。
如何使用 C 版本 1.1.1 强制我的应用程序 A 运行?具体来说,我需要删除编译器错误 CS1705。以前在完整框架中我会使用绑定重定向,但我知道这些在 dotnet 核心中不可用。
A
- B
- C (v = 1.1.1)
B
- C (v >= 1.1.2)
我不确定这是否会解决您的 CS1705 问题,但要为包 C 提供 1.1.1 的确切版本,您需要使用 Version Ranges.
例如。 <PackageReference Include="C" Version="[1.1.1]" />
您也可以尝试使用 implicit versioning,让构建过程为您决定。您将从 <PackageReference />
Version
属性
例如。 <PackageReference Include="C" />