【发布时间】:2016-12-09 09:39:25
【问题描述】:
例如,卸载具有大量依赖项的软件包,例如 WindowsAzure.Storage:
1) “管理 NuGet 包 UI”中的卸载按钮会保留所有依赖项(大部分未使用)。 非常有道理,为什么我需要卸载未使用的依赖项?
2) 好的,所以the docs 提到-RemoveDependencies,它被描述为:
卸载软件包及其未使用的依赖项。也就是说,如果任何依赖项有另一个依赖于它的包,则会跳过它。
描述似乎很清楚,令人印象深刻,这不是默认设置,但无论如何,让我们实际操作一下:
PM> Uninstall-Package WindowsAzure.Storage -RemoveDependencies
Attempting to gather dependency information for package 'WindowsAzure.Storage.7.1.2' with respect to project '***', targeting '.NETFramework,Version=v4.5.2'
Resolving actions to uninstall package 'WindowsAzure.Storage.7.1.2'
Uninstall-Package : Unable to uninstall 'Newtonsoft.Json.9.0.1' because '***, Hyak.Common.1.0.2, Microsoft.Azure.Common.Dependencies.1.0.0' depend on it.
At line:1 char:1
+ Uninstall-Package WindowsAzure.Storage -RemoveDependencies
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Uninstall-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.UninstallPackageCommand
什么?
不,没有其他包依赖于WindowsAzure.Storage(它几乎是根包)
好的,所以项目中可能有什么问题?
创建了新的解决方案,安装了WindowsAzure.Storage 和Nancy.Serialization.JsonNet(都依赖于Newtonsoft.Json),尝试卸载WindowsAzure.Storage - 结果相同。
这甚至应该工作吗?
VS 2015 UPD3
UPD 确认是一个错误并且可能没有得到修复,显然让它工作的唯一方法是使用更新的包模型。有关已创建 GitHub 问题的链接,请参阅已接受的答案
【问题讨论】:
标签: c# visual-studio nuget nuget-package