在Linux下使用.NET Core,可以使用几种不同的工具来管理NuGet软件包:.NET Core CLI(dotnet
命令)和在Mono下运行nuget.exe
。
在Microsoft文档中,它指示可以使用这两个工具来安装和卸载软件包。显然可以使用任何一种安装软件包,但是我还没有找到使用任何一种工具卸载NuGet软件包的方法。
dotnet
命令提供了一个remove
子命令,该子命令从.csproj
文件中删除了程序包引用,但没有卸载该程序包。您还可以将nuget locals
子命令与--clear
选项一起使用,以清除所有已安装的软件包,而不只是单个软件包。
是否可以在Linux上卸载单个NuGet软件包?
答案 0 :(得分:3)
“安装”和“卸载软件包”的术语起源于基于packages.config的NuGet模型,该模型将NuGet软件包的本地副本下载到解决方案文件旁边的文件夹中。然后,如果需要,NuGet还将修改csproj文件以添加引用。
在新的.NET Core /“基于SDK的项目”世界中,情况不再如此,因为您仅按ID + Version引用了一个程序包,并与您的所有其他项目共享该程序包的本地下载副本机器(从技术上讲,它对您的用户帐户是全局的)。另外,NuGet不再需要修改项目文件来添加或删除软件包。
虽然您希望dotnet remove
和类似的操作从项目中删除对该程序包的引用,但您不一定要从全局程序包缓存中删除该程序包,因为其他项目可能仍在使用它们。如果您确实将其从缓存中删除,则还原操作(例如,在dotnet build
期间隐式运行)将重新下载该软件包。
当前没有内置的方法可以删除程序包引用并将其从全局程序包缓存中删除。