솔루션의 프로젝트에서 참조하지 않는 NuGet 패키지를 어떻게 삭제합니까?


141

어떻게 든 VS2012 및 .NET 4.5로 업그레이드하는 동안 NuGet을 혼란스럽게했습니다. 패키지 관리자 (및 패키지 폴더)에 삭제할 수없는 패키지가 있습니다 (새 패키지로 새 패키지 이름으로 대체 된 레거시 ASP.NET NuGet 패키지라고 생각합니다. 각각 관리 버튼 만 있음) -하지만 제거 버튼 그리고 당신은 그들이 사용하는 경우, 당신은 그들이 솔루션의 프로젝트 그들이 아무도 참조하는 것을 볼 수 있습니다 볼 볼 때.? NOT 제거]를 표시?

답변:


108

Package Manager Console을 command :와 함께 사용 Uninstall-Package PackageId하여 제거하거나 솔루션 폴더 아래의 'packages'폴더에서 패키지 폴더를 삭제할 수 있습니다. 패키지 관리자 콘솔에 대한 자세한 내용은 다음을 참조 하십시오. http://docs.nuget.org/docs/reference/package-manager-console-powershell-reference


8
고마워 Pavel. 폴더를 삭제할 수 있다고 생각했습니다. 패키지가 참조되지 않았는지 수동으로 확인해야하기 때문에 약간 당혹 스럽습니다 (그렇지 않은 것으로 보입니다). 패키지 관리자가 제거 (또는 제거) 버튼을 표시하지 않는 이유를 알고 싶습니다.
Howard Pinsley

2
솔루션 레벨의 패키지 관리자는 솔루션의 프로젝트에 대한 모든 패키지 참조 및 패키지 폴더에 있지만 참조되지 않은 모든 패키지를 표시합니다. 이 패키지의 경우 UI에서 제거 기능이 없습니다. 잘못된 동작의 결과에 동의하지만이 경우 수동으로 확인해야합니다. 그리고 필요할 때 패키지를 삭제하거나 다시 설치하십시오.
Pavel Bakshy

1
폴더를 제거하고 NuGet으로 돌아가서 패키지를 확인하면 콘솔을 사용하여 올바른 제거를 수행하는 것이 좋습니다.
k80sg

1
@ysrb, get-user 또는 remove-item과 같이 동사 명사를 사용하는 powershell 명령, 예 : 명사 동사
Nick Young

1
@ysrb Nick Young이 말했듯이,에 대한 끔찍한 칭찬이 될 것 Install-Package입니다.
ProfK

159

이에 대한 해결 방법을 찾았습니다.

  1. 패키지 복원 및 자동 검사 활성화 (옵션 / 패키지 관리자 / 일반)
  2. 패키지 폴더의 전체 내용을 삭제하십시오 (긴장한 경우 휴지통으로).
  3. 솔루션을위한 Nuget 패키지 관리
  4. 복원 버튼을 클릭하십시오.

NuGet은 솔루션에 사용 된 패키지 복원 합니다 . 당신은 훌륭하고 능률적 인 패키지 세트로 끝납니다.


1
이것은하지 않습니다 하지 에서 패키지를 제거 packages.config하고 하지 프로젝트에서 참조를 제거?
CodeCaster

1
@CodeCaster는 이중 음수를 구문 분석하기가 어렵습니다. 구성 및 참조에서 아무것도 제거되지 않습니다. 여기서 아이디어는 더 이상 참조되지 않는 NuGet 패키지를 제거하는 것입니다.
James L

1
훌륭한 답변! TFS를 사용하는 경우 빌드 머신과 같은 다른 클라이언트도 중복 항목을 제거 할 수 있도록 소스 카운트 탐색기에서 ./packages 내의 모든 컨텐츠를 먼저 삭제해야합니다.
Alexander Schmidt

4
@ sprinter252, 패키지 복원을 사용하는 경우 먼저 패키지를 소스 제어로 검사하지 않아야합니다. 이것이 패키지 복원 사용의 주요 이점 중 하나입니다. 패키지 복원으로 변환하는 과정에서 '무시'규칙이 패키지 폴더에 있어야합니다.
Carl Bussema

@CarlBussema 당신이 맞아요. 새로운 NuGet 버전 이후 Nuget은 바이너리를 하위 폴더에 추가하지 않으므로 중요하지 않습니다. 따라서 폴더 구조 만 얻습니다. 내 의견은 TFS (패키지 폴더 포함)의 기본 동작과 관련이 있습니다. TFS에서 Anywhere는 무시됩니다. ;-). Xamarin과 혼합 프로젝트에 중요합니다.
Alexander Schmidt

17

먼저 패키지 관리자 콘솔을 엽니 다. 그런 다음 드롭 다운 목록에서 프로젝트를 선택하십시오. nuget 패키지를 설치 제거하려면 다음 명령을 실행하십시오.

Get-Package

설치 한 모든 패키지를 가져옵니다.

그리고

Uninstall-Package PagedList.Mvc

--- PagedList.MVC라는 패키지를 제거합니다.

메시지

PM> Uninstall-Package PagedList.Mvc
Successfully removed 'PagedList.Mvc 4.5.0.0' from MCEMRBPP.PIR.

이 대답은 나를 위해 완벽하게 작동했습니다. 내 상황은 패키지가 대화 상자의 업데이트 탭에만 표시되고 업데이트 를 누르면 패키지가 설치된 프로젝트가 없으므로 패키지를 업데이트하거나 제거 할 수있는 방법이 없었습니다.
azarc3 2016 년

8

솔루션의 여러 프로젝트에 적용되는 Nuget 패키지를 삭제 / 제거하려면 다음으로 이동하십시오.

  1. 도구-> Nuget 패키지 관리자-> 솔루션 용 Nuget 패키지 관리

  2. '설치된 패키지'가있는 왼쪽 열에서 '모두'를 선택하면 설치된 패키지 목록과 관리 버튼이 표시됩니다.

  3. 관리 버튼을 선택하면 팝업이 표시되고 프로젝트 이름에서 확인란을 선택 취소하고 확인하십시오.

나머지 작업 패키지 관리자가 대신 해줍니다.


1
이것은 분명히 내가 찾던 대답입니다. 감사합니다!
Sal

3

Uninstall-Package 유틸리티를 사용하여 패키지를 제거 하고 솔루션의 패키지 디렉토리에서 원하는 패키지를 삭제했지만 여전히 오류가 발생하는 경우 코드 편집기에서 * .csproj 파일을 열고 수동으로 태그를 제거하십시오. 예를 들어 Nuget 패키지 Xamarin.Forms.Alias 를 제거하고 * .csproj 파일에서이 줄을 제거했습니다.

msbuild 스크립트에서 nuget 패키지 제거

마지막으로 Visual Studio에서 프로젝트 파일을 변경 한 후 프롬프트가 표시되면 프로젝트를 다시로드하는 것을 잊지 마십시오. Visual Studio 2015에서 시도했지만 Visual Studio 2010 이상에서도 작동합니다.

도움이 되었기를 바랍니다.


2

대안은 솔루션의 모든 프로젝트에서 삭제하려는 사용하지 않는 패키지를 설치 한 다음 제거하고 Nuget도 제거하는 것입니다.

여기에 적절한 제거 프로그램이 필요합니다.


다시 설치하지 않고 제대로 제거하는 방법이 있습니까?
녹스

2

해결책 1

powershell 파이프 라인을 사용하여 패키지를 가져오고 다음과 같은 단일 문에서 제거하십시오.

Get-Package | Uninstall-Package

해결책 2

선택한 패키지를 제거하려면 다음 단계를 수행하십시오.

  1. GetPackages패키지 목록을 얻는 데 사용
  2. Nimble 텍스트 소프트웨어 다운로드
  3. GetPackagesNimbleText 의 출력을 복사하십시오 (목록 창의 각 행에 대해)
  4. (필요한 경우 열 구분자를 설정하십시오.
  5. 유형 Uninstall-Package $0(패턴 창을 사용하여 대체)
  6. 결과를 복사하여 패키지 관리 콘솔에 붙여 넣기

그게 다야


1

하나의 NuGet 패키지는 다른 NuGet 패키지를 참조 할 수 있습니다. 따라서 패키지 간 종속성에 매우주의하십시오. 방금 Google 맵 패키지를 제거한 후 Newtonsoft, Entity Framework 등과 같은 기본 패키지를 제거했습니다.

따라서 패키지 폴더에서 특정 패키지를 수동으로 삭제하는 것이 더 안전합니다.


1

패키지 관리자 콘솔 창에서 패키지를 설치하는 데 사용한 모든 명령을 사용하여 해당 패키지를 제거 할 수 있습니다. INSTALL 명령을 UNINSTALL로 바꾸십시오 .

예를 들어 PowerTCPTelnet을 설치하려면 명령은 다음과 같습니다.

Install-Package PowerTCPTelnet -Version 4.4.9

동일하게 제거하려면 명령은 다음과 같습니다.

Uninstall-Package PowerTCPTelnet -Version 4.4.9


1

VS2019> 도구> 옵션> Nuget 패키지 관리자> 일반> "모든 Nuger 캐시 지우기"를 클릭하십시오


-2

다른 방법으로 가장 간단하게는 다음과 같습니다.

  1. Soution으로 가서 이것을 마우스 오른쪽 버튼으로 클릭하십시오.

  2. "솔루션 용 관리되는 NUgets 패키지"옵션을 선택하십시오. "설정"버튼을 클릭하면 팝업 창이 열립니다. 그러면 다른 팝업 창이 열리고 "패키지 관리자"가 검색됩니다.

  3. "패키지 관리자"옵션에는 두 가지 옵션이 더 있습니다 (I. 일반 II. 패키지 소스) 각 옵션에서 모든 확인란의 선택을 취소하십시오.

이 단계는 프로젝트에서 NuGet을 비활성화합니다.

정말 당신을 도울 수 있기를 바랍니다.


-2

Visual Studio 옵션을 사용하려면 아래 링크를 참조하십시오

http://spvenky.wordpress.com/2014/08/10/how-to-remove-nuget-packages-from-existing-visual-studio-solution/

1 단계 : Visual Studio에서 도구 / NuGet 패키지 관리자 / NuGet 패키지 관리로 이동하여…

2 단계 : 현재 솔루션에서 프로젝트 확인

3 단계 : 프로젝트 선택을 취소하고 OK를 누릅니다.


2
링크는 차후에 만료 될 수 있으므로 링크를 게시하는 대신 StackOverflow에 답변을 작성하는 것이 좋습니다.
Amadeus Sánchez
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.