我的C#.Net Framework 4.7.2项目正在使用NuGet程序包,将其称为程序包A。程序包A具有对程序包B的程序包引用。程序包B导致了我的问题,而我在项目中不希望使用它。程序包B仅是依赖项,这是由于程序包A中提供的接口的默认实现。我可以提供该接口的新实现,但是如何防止NuGet还原引入不需要且现在不需要的程序包B? >
答案 0 :(得分:1)
我可以提供该接口的新实现,但是我该如何 阻止NuGet还原拉进不需要的和现在不需要的 套餐B?
由于您已经在项目中安装了具有依赖项Package B的Package A,因此可以尝试以下操作:
首先,尝试输入您的packages.config
文件并删除Package B,如下所示:
删除此:
<package id="Package B" version="xxx" targetFramework="net472" />
第二,删除xxx.csproj
文件下的程序包B(卸载项目-> Edit xxx.csproj
)并删除此文件:
<Reference Include="Package B, Version=xxx Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\xxx\PackageB.dll</HintPath>
</Reference>
然后,重新加载您的项目,并且在“还原”步骤或构建期间不会加载程序包B。
此外,如果您想安装没有依赖项的nuget软件包,可以尝试在Tools
-> NuGet Package Manager
-> {{ 1}}:
Nuget Packager Console
它不会安装nuget软件包的所有依赖项。
如果您的nuget包中有多个依赖项,而您只想删除其中之一,则只能像往常一样安装nuget包和所有依赖项,然后使用我的解决方案删除nuget包。