명령 행을 사용하여 NuGet 패키지 캐시를 지우려면 어떻게해야합니까?


404

Visual Studio 메뉴 도구옵션NuGet 패키지 관리자일반 : Clear Package Cache버튼을 사용하여 개발 컴퓨터의 NuGet 패키지 캐시를 지울 수 있습니다 .

커맨드 라인 에서이 작업을 수행하고 싶습니다. 불행하게도, nuget.exe 관련 명령 줄 switch를 찾을 수 없습니다.

내가 뭘 놓 쳤니?


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

2
캐시에서 특정 NuGet을 제거 할 가능성이 있습니까? 예를 들어 : 캐시에서 NuGet X를 제거하고 NuGet 캐시 위치를 알지 못합니다.이 경우 캐시에서 "X"만 제거하는 방법
user3610920

19
이 링크에서 다운로드 nuget update -selfnuget.exe 를 업데이트 하기 위해 실행해야했습니다. 그렇지 않으면 오류가 발생했습니다Unknown commmand: 'locals'
ajbeaven

1
devenv.exe일부 패키지 폴더가 차단되어 지워지지 않으므로 VS를 닫으십시오 .
샤리프

227

Visual Studio 2017에서 도구NuGet 패키지 관리자패키지 관리자 설정 메뉴로 이동하십시오 . 당신은 버튼을 찾을 수 있습니다 Clear All NuGet Cache(s):

여기에 이미지 설명을 입력하십시오

.NET Core를 사용하는 경우이 명령으로 캐시를 지우면 .NET Core 도구 1.0에서 작동합니다.

dotnet nuget locals all --clear

7
그래서 돌아왔다! :-). VS 2019에서 다시 제거 될지 궁금합니다 :-)
g.pickardou

13
커맨드 라인 사용법 dotnet nuget locals all --clear은 매우 유용합니다
Boggin

1
명령 dotnet nuget locals all --clear은 완벽하게 작동했습니다. 추가 nuget cmd 도구를 설치할 필요가 없었습니다. 내 SSD가 다시 숨을 쉴 수 있습니다!
Jiří Kuba 14

87

nuget.exe 유틸리티에는이 기능이 없지만 NuGet 캐시가 단순히 컴퓨터의 폴더 인 경우 파일을 수동으로 삭제할 수 있습니다. 이것을 배치 파일에 추가하십시오.

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

5
요청할 때 이것이 유일한 해결책 이었으므로 가장 좋은 대답이었습니다. 이제 표시를 해제하고 시도한 후에 @rmoore의 답변을 인정했습니다.
g.pickardou

27

나를 위해 나는 여기에 가야했다.

%userprofile%\.nuget\packages

2
이것은 모든
너겟을

2
그리고 2.02 Gb 너겟 패키지를 가지고있었습니다 : o
Alok Rajasukumaran

19
2.04GB은에 대해 "안녕하세요!"노드 응용 프로그램에 대한 node_modules과 동일)
tommed

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.0, Batmaci 1.1, Batmaci 1.2당신이 필요로하는 모든 최신 하나입니다
Simon_Weaver

캐시에서 NuGet 패키지를 찾지 못해 빌드 서버에서 가끔 문제가 발생했습니다. 빌드 시작시 항상 캐시를 비워서 해결했습니다.
Steve Wright

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-캐시 통과 패키지와 몇 가지 문제가로서 나는 루슬란에서 위의 접근 방식으로 갈 것
Alexz

달리기 dotnet restore --no-cache는 나를 위해 일했지만 관리자로 실행되는 Powershell 프롬프트에서해야했습니다.
shanabus

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

3

PowerShell도 사용할 수 있습니다 (나와 동일).

예를 들면 다음과 같습니다.

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

또는 'quiet'모드 (오류 메시지 없음) :

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.