コマンドラインを使用してNuGetパッケージキャッシュをクリアするにはどうすればよいですか?


405

私は、Visual Studioのメニュー使用して私の開発コンピュータのNuGetパッケージのキャッシュをクリアすることができますツールオプションNuGetパッケージマネージャ一般Clear Package Cacheボタンを。

コマンドラインでこれを実行したいと思います。残念ながら、nuget.exeの関連するコマンドラインスイッチが見つかりません。

私は何か見落としてますか?


10
このオプションは私の2015 VSバージョンに含まれていません
spankmaster79

1
はい、それはありません。だから私は受け入れられた答えを使用しています。
g.pickardou

回答:


633

まず、ここからNuGetコマンドラインツールをダウンロードします

次に、コマンドプロンプトを開き、ダウンロードcdしたディレクトリに移動しnuget.exeます。

次のコマンドでローカルキャッシュを一覧表示できます。

nuget locals all -list

次のコマンドですべてのキャッシュをクリアできます:

nuget locals all -clear

リファレンス:https : //docs.nuget.org/consume/command-line-reference


10
3.3で問題なく動作しますが、現在のユーザーのみです-ローカルシステムで(悲しいことに)実行されているビルドサーバーの破損したローカルキャッシュに問題があったため、キャッシュはリストされませんでした-実際の場所は `C:\ Windowsでした\ SysWOW64 \ config \ systemprofile \ AppData \ Local \ NuGet \ Cache`
Zhaph-Ben Duguid

1
おそらく、クリア操作をビルド操作とまったく同じユーザーで実行する必要があります。専用のビルドユーザーを構成するか、トリックを使用してローカルシステムでクリアを実行します。
g.pickardou 2016

2
特定のNuGetをキャッシュから削除する可能性はありますか?例:キャッシュからNuGet Xを削除したいが、NuGetキャッシュの場所がわからない。この状況では、キャッシュから「X」だけを削除する方法
user3610920

19
私はこのリンクからダウンロードしnuget update -selfnuget.exeを更新するために実行する必要がありました。それ以外の場合はエラーが発生しましたUnknown commmand: 'locals'
ajbeaven

1
devenv.exe一部のパッケージフォルダーをブロックしている可能性があるため、VSを閉じてください。それらはクリアされません。
Sharif

227

Visual Studio 2017で、メニューの[ ツール ] →[ NuGet パッケージマネージャー][パッケージマネージャー設定]に移動します。あなたはボタンを見つけるかもしれません、Clear All NuGet Cache(s)

ここに画像の説明を入力してください

.NET Coreを使用している場合は、次のコマンドでキャッシュをクリアできます。これは、.NET Coreツール1.0以降で機能します。

dotnet nuget locals all --clear

7
だから帰ってきた!:-)。VS 2019で再び削除されるかどうか
知り

13
コマンドラインの使用dotnet nuget locals all --clearは非常に便利です。ありがとう
Boggin

1
コマンドdotnet nuget locals all --clearは完全に機能しました。追加のnuget cmdツールをインストールする必要はありませんでした。SSDが再び呼吸できます!
イジー・クバ

87

nuget.exeユーティリティにはこの機能はありませんが、NuGetキャッシュが単にコンピューター上のフォルダーであることを確認すると、ファイルを手動で削除できます。これをバッチファイルに追加するだけです。

del %LOCALAPPDATA%\NuGet\Cache\*.nupkg /q

5
これを尋ねる時点でこれが唯一の解決策だったので、最良の答えでした。今私はそれのマークを外し、それを試した後の@rmooreの答えを信用しました。
g.pickardou 2016

27

私にとっては、ここに行かなければなりませんでした:

%userprofile%\.nuget\packages

2
これは、すべてのナゲットがダウンロードされて保持される正しいパスです
Alok Rajasukumaran

2
そして、私は2.04 Gbのnugetパッケージを持っていました:o
Alok Rajasukumaran

19
2.04GBは、「hello world」ノードアプリのnode_modulesとほぼ同じです;)
2017年

20

これはrm8xの答えに追加されます

NuGetコマンドラインツールをダウンロードしてインストールします。

すべての地元の人をリストアップします。

$ nuget locals all -list
http-cache: C:\Users\MyUser\AppData\Local\NuGet\v3-cache
packages-cache: C:\Users\MyUser\AppData\Local\NuGet\Cache
global-packages: C:\Users\MyUser\.nuget\packages\

これらを手動で削除するか、rm8xが示唆するように、を使用しますnuget locals all -clear


nugetがすべてのビルドでそれらすべてを生成する場合、削除する意味は何ですか?なぜnugetが本当に多くのフォルダを作成しているのですか?
batmaci

2
@batmaci時間をかけて、パッケージが更新されますと、あなたがになってしまいますのでBatmaci 1.0Batmaci 1.1Batmaci 1.2どこが必要とするすべてが最新のものである
Simon_Weaver

キャッシュでNuGetパッケージが見つからないというビルドサーバーで時々問題が発生しました。ビルドの開始時に常にキャッシュをクリアすることで解決しました。
スティーブライト

14

dnxHTTP結果を供給するための別のキャッシュがあることに注意してください:

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

次に、新しいdotnetCLIツールでコマンドがどのようになるかを見つける必要があります。

...そしてここにあります:

dotnet restore --no-cache

--no-cacheを渡したとしてもパッケージにいくつかの問題があるため、Ruslanからの上記のアプローチを使用します
Alexz

実行dotnet restore --no-cacheは機能しましたが、管理者として実行している
Powershell

10

dotnet nuget locals all --clear

.NET Coreを使用している場合。


あなたが昼食に行く前にこれを行うことをお勧めします。
Helzgate

5

ビルドサーバー/エージェントのNuGetキャッシュをクリアする必要がある場合は、ここでNuGetパッケージのキャッシュを見つけることができます。

%windir%/ServiceProfiles/[account under build service runs]\AppData\Local\NuGet\Cache

例:

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

1
パスをより読みやすくするためにパスをマークし、[windows dir]をに置き換える%windir%ことで、たとえばWindowsエクスプローラーに入ると自動的に正しいディレクトリに移動します。
Kjartan、2016年

3

PowerShellも使用できます(私と同じです)。

例えば:

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg

または「エラー」メッセージなしの「静かな」モード:

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.