【问题标题】:Uninstall NuGet package on Linux [closed]在 Linux 上卸载 NuGet 包 [关闭]
【发布时间】:2018-12-17 11:04:16
【问题描述】:

在 Linux 下使用 .NET Core,可以使用多种不同的工具管理 NuGet 包:.NET Core CLI(dotnet 命令)和在 Mono 下运行 nuget.exe

在 Microsoft 文档中,它表明可以使用这两种工具安装和卸载软件包。显然可以使用任一工具安装包,但我还没有找到使用任一工具卸载 NuGet 包的方法。

dotnet 命令提供了一个remove 子命令,它从.csproj 文件中删除包引用,但不卸载包。您还可以使用带有--clear 选项的nuget locals 子命令来清除所有已安装的包,而不仅仅是单个包。

是否可以在 Linux 上卸载单个 NuGet 包?

【问题讨论】:

    标签: linux asp.net-core .net-core nuget


    【解决方案1】:

    “安装”和“卸载包”的术语源自基于 packages.config 的 NuGet 模型,该模型将 NuGet 包的本地副本下载到解决方案文件旁边的文件夹中。如果需要,NuGet 还会修改 csproj 文件以添加引用。

    在新的 .NET Core /“基于 SDK 的项目”世界中,情况不再如此,因为您只需按 ID+版本引用包,并与您的所有其他项目共享本地下载的包副本机器(从技术上讲,它对您的用户帐户是全局的)。此外,NuGet 不再需要修改项目文件来添加或删除包。

    虽然您希望 dotnet remove 和类似操作从项目中删除对包的引用,但您不一定要从全局包缓存中删除该包,因为其他项目可能仍在使用它们。如果您确实将其从缓存中删除,则恢复操作(例如在 dotnet build 期间隐式运行)将重新下载该包。

    目前没有内置方法可以删除包引用并将其从全局包缓存中删除。

    【讨论】:

    猜你喜欢
    • 2016-04-14
    • 2016-07-07
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多