我可以清除我的开发计算机的NuGet包缓存使用Visual Studio菜单工具→选项→NuGet包管理器→通用:清除包缓存按钮。

我希望在命令行上执行此操作。不幸的是,我找不到nuget.exe的相关命令行开关。

我错过什么了吗?


当前回答

我在这里结束,因为我试图弄清楚如何从缓存中删除特定的nuget包。上面的答案讨论了使用nuget locals all -clear删除所有本地包。

如果有人对清除特定的包感兴趣,我将分享我的发现:

You can't currently clear a specific package using the nuget or dotnet cli. There is a github issue open to fix this: https://github.com/NuGet/Home/issues/5713 For now, you have to resort to filesystem commands (as some of the answers above mention) to delete the specific package. For mac/linux, it was rm -rf ~/.nuget/packages/<package-name> What I actually needed was a way to delete the cache of a specific package that I was about to re-publish to a local nuget repository (using a fixed version number to make local development easier). I accomplished this by adding the following to the .csproj file of the nuget-packaged library:

    <Project>
      <Target Name="DeleteLocalCache" BeforeTargets="Pack">
        <RemoveDir Directories="$(NugetPackageRoot)/$(PackageId.ToLower())/1.0.0-local"/>
      </Target>
    </Project>

其他回答

首先,从这里下载NuGet命令行工具。

接下来,打开命令提示符并cd到nuget.exe下载到的目录。

你可以用这个命令列出本地缓存:

nuget locals all -list

你可以用这个命令清除所有的缓存:

nuget locals all -clear

参考:https://docs.nuget.org/consume/command-line-reference

如果你需要为你的构建服务器/代理清除NuGet缓存,你可以在这里找到NuGet包的缓存:

%windir%/ServiceProfiles/[在构建服务下运行的帐户]\AppData\Local\NuGet\Cache

例子:

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\NuGet\Cache

Dotnet nuget本地安全

如果你使用的是。net Core。

对我来说,我必须在这里:

%userprofile%\.nuget\packages

注意,dnx有一个不同的缓存来提供HTTP结果:

Microsoft .NET Development Utility Clr-x86-1.0.0-rc1-16231
   CACHE https://www.nuget.org/api/v2/
   CACHE http://192.168.148.21/api/odata/

你能澄清吗

dnu clear-http-cache

现在我们只需要找出新的dotnet CLI工具上的命令是什么。

...就是这样:

dotnet restore --no-cache