【发布时间】:2021-11-03 02:50:42
【问题描述】:
问题
是否可以使用命令行从 NuGet 本地缓存中清除特定的 NuGet 包?
上下文
我想确保在为项目执行包还原操作时,将还原最新的服务器二进制文件,而不是缓存中的内容。同时我不想从缓存中删除所有包。
【问题讨论】:
标签: nuget nuget-package
问题
是否可以使用命令行从 NuGet 本地缓存中清除特定的 NuGet 包?
上下文
我想确保在为项目执行包还原操作时,将还原最新的服务器二进制文件,而不是缓存中的内容。同时我不想从缓存中删除所有包。
【问题讨论】:
标签: nuget nuget-package
如果你有 NuGet.exe 3.3 或更高版本,你可以从命令行清除整个缓存:
nuget locals <all | http-cache | packages-cache | global-packages> -clear
如果您的 NuGet 包已下载到 NuGet v2 缓存,那么您只需一个简单的脚本即可从包缓存中删除特定的 .nupkg 文件。
del %LocalAppData%\NuGet\Cache\NUnit.2.6.4.nupkg
使用 NuGet v3 缓存,结构有点不同,因此您需要删除一组目录:
rmdir %UserProfile%\.nuget\packages\NUnit\2.6.4 /s
【讨论】:
nuget 或dotnet cli 从缓存中删除特定包。有一个 github 问题需要解决:https://github.com/NuGet/Home/issues/5713
rm -rf ~/.nuget/packages/<package-name>
<Project>
<Target Name="DeleteLocalCache" BeforeTargets="Pack">
<RemoveDir Directories="$(NugetPackageRoot)/$(PackageId.ToLower())/1.0.0-local"/>
</Target>
</Project>
【讨论】: