솔루션에서 사용하지 않는 NuGet 패키지를 어떻게 찾을 수 있습니까?


148

솔루션에서 사용하지 않는 NuGet 패키지를 어떻게 찾을 수 있습니까?

설치된 패키지가 많이있는 많은 솔루션이 있으며 많은 수의 업데이트가있는 것으로 표시됩니다.

그러나 변경 사항이 중단 될 수 있으므로 먼저 사용하지 않는 패키지를 제거하여 정리하고 싶습니다.


2
사용하지 않는 패키지를 변경해도 아무런 영향을 미치지 않을 것입니다 ... 질문에 관해서는 모든 NuGet 패키지를 제거하고 컴파일러가 알려주는 내용을 다시 추가합니다.
하드 슈나이더

5
@OhadSchneider Nope ... 그러나 저의 OCD는 사용되지 않는 패키지의 모든 균열을 원하지 않습니다 (예 : 배포)
SteveC

답변:


57

ReSharper 2016.1에는 사용하지 않는 NuGet을 제거하는 기능이 있습니다.

솔루션 및 솔루션의 각 프로젝트에서 실행될 수 있으며 다음과 같은 작업을 수행합니다.

  1. 코드를 분석하고 어셈블리에 대한 참조를 수집하십시오.
  2. 어셈블리 사용법을 기반으로 NuGet 사용법 그래프를 작성하십시오.
  3. 컨텐츠 파일이없고 사용되지 않고 의존성이없는 패키지는 사용되지 않은 것으로 가정하여 제거 할 것을 제안합니다.

불행히도 이것은 project.json프로젝트 ( RSRP-454515 ) 및 ASP.NET 핵심 프로젝트 ( RSRP-459076 )에서 작동하지 않습니다


2
나는 2016.1을 가지고 있으며 R #은 사용되지 않는 nuget 참조를 제거하지 않습니다. nuget3과 함께 project.json을 사용하고 있습니다-알려진 문제입니까?
Peter McEvoy

2
@PeterMcEvoy 예, 이것은 알려진 문제입니다. 지적 해 주셔서 감사합니다. 나는 그것을 명확히하기 위해 답변을 업데이트했습니다.
ulex

4
나는 눈이 멀어 야하지만 실제로이 도구를 실행할 방법을
찾지 못했습니다

14
@claudekennilol이 알아 냈습니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하면 "참조 최적화 ..."옵션이 제공됩니다.
Matt Sanders

1
@ 프랙탈 올바름. 개인 사용자에게는 비용이 너무 비싸지 만 어떤 유형의 직장이든 Resharper는 기본 VS에 비해 훨씬 빠르고 깨끗한 워크 플로우에 적합합니다.
Excludos

21

Visual Studio Extension ResolveUR-사용하지 않은 참조 확인을 사용할 수 있습니다.

솔루션 및 프로젝트 노드의 솔루션 탐색기 도구 창에서 메뉴 항목을 통해 Visual Studio 2012/2013 프로젝트의 너겟 참조를 포함하여 사용하지 않는 참조를 해결하십시오.

쉬운 작업이 아니기 때문에 문제가 발생한 경우 롤백하기 전에 백업 및 / 또는 커밋을 제안하는 것이 좋습니다.


이 프로그램은 라이브러리를 삭제하는 데 너무 열심입니다 ... 웹 사이트를 사용할 때 많은 DLL이 필요하지만 사라 졌음을주의하십시오. NuGet 패키지에 다른 패키지가 필요한 경우 의존성이 없어도 해당 패키지를 삭제해서는 안됩니다.
jsgoupil

이 도구를 나쁜 결과로 사용했습니다. 실제로 사용중인 많은 것들이 제거되었습니다 (또는 적어도 제거하는 것이 좋습니다). 몇 번이나 제안을 신뢰했으며 삭제 된 내용을 복구하는 데 소중한 시간을 보냈습니다.
Ryan VandenHeuvel

2
[참고] 설명은 다음과 같이 명확하게 기술되어 있습니다 :The tool is not tested to work with DotNet Web projects(Asp.Net, MVC), Windows CE, Silverlight project types. Use it at your own risk.
Korayem

이 도구는 정말 좋습니다! 코드에서 직접 참조하지 않아도 NUnit.ConsoleRunner 등을 제거하지 않는 것이
현명

이 도구는 느립니다. 250 개가 넘는 프로젝트가있는 솔루션이 있습니다. 기다렸습니다. 기다렸습니다. 한숨
Piotr Kula

11

Resharper 2019.1.1을 사용하여이 작업을 수행 할 수 있습니다.

프로젝트> 리 팩터> 사용되지 않은 참조 제거를 마우스 오른쪽 단추로 클릭하십시오.

프로젝트가 작 으면 프로젝트> 사용 된 참조 최적화를 프로젝트 할 수도 있습니다. . .

창이 나타납니다. 모든 참조를 선택하고 모두 제거하십시오. 그런 다음 돌아가서 컴파일러 오류를 발생시키는 것을 다시 추가하십시오.


3
VS.Net 2019의 Resharper에서는 솔루션 탐색기> 참조 > 참조 최적화 ...
R. Schreurs

"참조 최적화 도구 창은 현재 프로젝트에서 사용되지 않고 사용되는 어셈블리 참조를 표시하고 참조가 정확히 사용되는 방법을 보여줍니다." blog.jetbrains.com/dotnet/2012/01/03/…
Nick Gallimore

1

이것은 육체 노동이지만 작동합니다.

  1. ReSharper 또는 유사한 코드 분석 도구를 사용하여 프로젝트에서 사용되지 않은 참조를 식별하고 해당 프로젝트에서 너겟을 제거하십시오.

  2. 때때로 제거 된 nuget은 NuGet 패키지 관리 대화 상자 의 설치된 패키지업데이트 목록에 남아 있습니다. Visual Studio를 packages닫은 다음 폴더 를 삭제 한 다음 솔루션을 다시 열고 너겟을 복원하십시오.


0

나는 이것을 알아내는 기본 방법이 없다고 생각합니다. 주된 이유는 어셈블리 참조부터 프로젝트에 소스 코드 삽입에 이르기까지 이러한 패키지가 수행 할 수있는 다양한 작업 때문입니다. Nuget 을 확인하고 싶을 수도 있습니다. . codeplex의 다음 스레드는 너겟 패키지의 감사 보고서에 대해 설명합니다.

http://nuget.codeplex.com/discussions/429694

(NuGet은 Codeplex에서 GitHub로 이동되었습니다. 위 링크의 아카이브 :) https://web.archive.org/web/20171212202557/http://nuget.codeplex.com:80/discussions/429694

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.