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