首页 文章

如何删除解决方案中未被任何项目引用的NuGet包?

提问于
浏览
130

不知何故,在升级到VS2012和.NET 4.5期间,我设法让NuGet感到困惑 . 包管理器(以及包文件夹)中出现了一些我无法删除的包(我相信它们是旧的ASP.NET NuGet包,它们已被新版本的新包名替换 . 它们每个都只有一个 Manage 按钮 - 但是没有卸载按钮 . 当你想看看它们的使用位置时,你会发现它们没有被解决方案的项目引用?它们是 NOT 显示卸载?

11 回答

  • -2

    您可以使用包管理器控制台和命令: Uninstall-Package PackageId 将其删除,或者只删除解决方案文件夹下'packages'文件夹中的包文件夹 . 有关Package Manager Console的更多信息,请访问:http://docs.nuget.org/docs/reference/package-manager-console-powershell-reference

  • 0

    我找到了解决方法 .

    • 启用包恢复和自动检查(选项/包管理器/常规)

    • 删除包文件夹的全部内容(如果您感到紧张,请删除回收站!)

    • 管理Nuget软件包以获得解决方案

    • 单击“还原”按钮 .

    NuGet将仅恢复解决方案中使用的包 . 最终得到了一套漂亮的,简化的软件包 .

  • 0

    首先打开包管理器控制台 . 然后从下拉列表中选择您的项目 . 并运行以下命令以卸载nuget包 .

    Get-Package

    获取已安装的所有软件包 .

    然后

    Uninstall-Package PagedList.Mvc

    ---卸载名为PagedList.MVC的包

    信息

    PM> Uninstall-Package PagedList.Mvc
    Successfully removed 'PagedList.Mvc 4.5.0.0' from MCEMRBPP.PIR.
    
  • 7

    如果要删除/卸载应用于 multiple projects in your solutions 的Nuget包,请转到:

    • 工具 - > Nuget包管理器 - >管理解决方案的Nuget包

    • 在左侧列中,“已安装的软件包”选择“全部”,因此您将看到已安装软件包的列表和跨越它们的“管理”按钮 .

    • 选择管理按钮,您将弹出,取消选中项目名称旁边的复选框,然后单击确定

    其余的工作包管理器将为您完成 .

  • 15

    如果您使用 Uninstall-Package 实用程序删除了包并从解决方案包目录中删除了所需的包(并且您仍然收到错误),只需在代码编辑器中打开* .csproj文件并手动删除该标记 . 比如说,我想摆脱Nuget包 Xamarin.Forms.Alias 并从* .csproj文件中删除这些行 .

    Removing nuget package from msbuild script

    最后,不要忘记在Visual Studio中提示后重新加载项目(更改项目文件后) . 我在Visual Studio 2015上尝试过它,但它应该可以在Visual Studio 2010上继续使用 .

    希望这可以帮助 .

  • 152

    一个NuGet包可以引用另一个NuGet包 . 因此,请非常小心包间依赖关系 . 我刚刚卸载了一个Google Map 包,随后又卸载了像Newtonsoft,Entity Framework等底层软件包 .

    因此,从packages文件夹手动删除特定包将更安全 .

  • 1

    另一种方法是在解决方案的任何项目中安装要删除的未使用的软件包,之后卸载它,Nuget也会将其删除 .

    这里需要一个合适的卸载程序 .

  • 2

    其他方式,对我来说最简单的是:

    • 转到您的Soution,然后右键单击此处 .

    • 选择“Managed NUgets Packages for Solution”选项 . 打开一个弹出窗口,点击“设置”按钮 . 这将打开其他弹出窗口,然后搜索:“包管理器” .

    • 在选项“包管理器”中,您还有两个选项(I.常规II . 包源)在每个选项中取消选中所有复选框 .

    此步骤从您的项目中停用NuGet .

    我希望真的能帮助你 .

  • 102

    解决方案1

    使用powershell管道获取包并在单个语句中删除

    Get-Package | Uninstall-Package
    

    解决方案2

    如果要卸载选定的包,请按照以下步骤操作

    • 使用 GetPackages 获取包列表

    • 下载 Nimble text 软件

    • 在NimbleText中复制 GetPackages 的输出(对于列表窗口中的每一行)

    • 如果需要,将Column Seperator设置为 (

    • 类型 Uninstall-Package $0 (使用模式窗口替换)

    • 复制结果并将其粘贴到 Package Manage Console

    这就是所有人 .

  • 1

    在Package Manager控制台窗口中,通常可以使用用于安装软件包的任何命令进行卸载那个包裹 . 只需用 UNINSTALL 替换 INSTALL 命令即可 .

    例如,要安装PowerTCPTelnet,命令为:

    Install-Package PowerTCPTelnet -Version 4.4.9

    要卸载它,命令是:

    Uninstall-Package PowerTCPTelnet -Version 4.4.9

  • 0

相关问题