NuGet - 卸载&如果其他项目不依赖于它们,则仅删除依赖项?

时间:2016-08-22 19:59:41

标签: c# .net visual-studio nuget

我有一个没有任何内容的NuGet包,除了对其他包的依赖。所以基本上把它想象成“包装包”。其中一个软件包依赖于第三方软件,该软件也被我们项目的其他部分使用。

我的问题是我想要卸载package-of-packages,为此我指定了-RemoveDependencies选项。但是,我收到错误消息“无法卸载<third-party package>,因为<another package we use>取决于它。

只有在其他项目不依赖于它时,是否有办法卸载依赖项?

3 个答案:

答案 0 :(得分:0)

我通过更改&#34;包裹包裹来实现我想要的结果&#34;范例。我没有将其他包标记为依赖项,而是创建了一个1文件夹,并在内部放置了一个install.ps1和uninstall.ps1 powershell脚本,它在安装或卸载时运行。 Read more here.

在这些脚本中,我只是发出命令来安装或卸载我选择的软件包。默认情况下,tools/不会删除依赖项,这使我的工作变得更加容易。它没有实现我的初始目标,即只删除项目其他部分不需要的依赖项,它只保留任何二阶依赖关系。这对我来说不是问题,因为我的一个包只有一个二阶依赖。

答案 1 :(得分:0)

对于单个项目

Get-Packages -ProjectName <project> | Uninstall-Package -ProjectName <project>

在包管理控制台中应该可以解决问题。

依赖包无法卸载的包卸载失败,没有依赖包的包卸载成功。

答案 2 :(得分:-1)

您需要首先卸载所有依赖它的NuGet包。然后你可以删除这些依赖项。

因为如果有其他软件包依赖于它,如果你删除它,软件包将失去依赖关系,这将导致这些软件包无法再工作。