Nugetパッケージのキャッシュをクリアする
2020.07.30追記
Visual StudioのTool > options
からキャッシュをクリアできるとのこと.
このClear All Nuget Caches
というボタン.
本文
ふと気づくとローカルストレージの容量が心もとなくなっていました.
Visual Studioを始めとした開発環境のサイズが大きいのはわかるのですが,それにしても空きが少なすぎる,と思いました.いったい何がそんなに容量食っているのかと.
DiskInfoというフリーソフトでストレージの使用状況を確認してみたところ,どうやらNugetパッケージのキャッシュがかなりのサイズになっていることがわかりました.
20GB,パッケージ数にして918...
普段,色々な人たちのリポジトリからcloneしてローカル環境で実行したり,新しいパッケージを見つけたらそれを試してみるためにプロジェクトを作ってNugetでパッケージをインストールしたりを頻繁に行っているためです.
キャッシュはよく使うものであればとても有用ですが,私の場合は普段の使い方の性質上,一度しか使っていないパッケージが大量にキャッシュされたままになっています.
これは一度大掃除が必要だなと思いました.
冒頭の2つの記事を参考にキャッシュをクリアする手順をメモとして残します.
キャッシュの保存場所を確認する
キャッシュの保存場所は以下のコマンドで確認します.
dotnet nuget locals all --list
出力:
http-cache: C:\Users\hoge\AppData\Local\NuGet\v3-cache global-packages: C:\Users\hoge\.nuget\packages\ temp: C:\Users\hoge\AppData\Local\Temp\NuGetScratch plugins-cache: C:\Users\hoge\AppData\Local\NuGet\plugins-cache
4つのディレクトリが表示されました.
.nuget
だけじゃないんかい.
それぞれのサイズを確認すると以下のとおりでした.24GB...
サイズ(GB) | |
---|---|
http-cache | 4.38 |
global-packages | 20.01 |
temp | 0 |
plugins-cache | 0 |
Total | 24.39 |
キャッシュを削除する
rksoftwareさんの記事によると,エクスプローラから削除しても大丈夫のようです.が,記事内でも書かれているようにこれは自己責任で.
公式の方法としてはdotnet nuget
コマンドで削除します.これは上記4箇所のキャッシュを個別にクリアすることもできるし,まとめてクリアすることもできるとのことです.
# Clear the 3.x+ cache (use either command) dotnet nuget locals http-cache --clear nuget locals http-cache -clear # Clear the 2.x cache (NuGet CLI 3.5 and earlier only) nuget locals packages-cache -clear # Clear the global packages folder (use either command) dotnet nuget locals global-packages --clear nuget locals global-packages -clear # Clear the temporary cache (use either command) dotnet nuget locals temp --clear nuget locals temp -clear # Clear the plugins cache (use either command) dotnet nuget locals plugins-cache --clear nuget locals plugins-cache -clear # Clear all caches (use either command) dotnet nuget locals all --clear nuget locals all -clear
なるほど.
ではさっそくまとめて削除します.
dotnet nuget locals all --clear
出力:
Clearing NuGet HTTP cache: C:\Users\hoge\AppData\Local\NuGet\v3-cache Clearing NuGet global packages folder: C:\Users\hoge\.nuget\packages\ Clearing NuGet Temp cache: C:\Users\hoge\AppData\Local\Temp\NuGetScratch Clearing NuGet plugins cache: C:\Users\hoge\AppData\Local\NuGet\plugins-cache
結果
素晴らしい.