it-swarm-ko.tech

사용하지 않는 참조를 제거하십시오 (! = "using")

내 프로젝트에서 사용되지 않은 참조를 어떻게 찾고 삭제합니까?

2008 년에 using 문을 쉽게 제거 할 수는 있지만 프로젝트의 실제 참조를 제거하지는 않습니다. 참조 된 dll은 여전히 ​​bin/setup 패키지에 복사됩니다.

100
Boris Callens

* 참고 :이 답변의 다른 버전은 http://www.jetbrains.net/devnet/message/5244658 를 참조하십시오.

게시물을 읽으면 원래 질문에 대해 약간의 혼란이있는 것 같습니다. 그것에 찔러 보자.

원래 게시물은 실제로 다음과 같은 질문을합니다. "한 Visual Studio 프로젝트에서 사용하지 않는 다른 프로젝트/조립품에 대한 참조를 어떻게 식별하고 제거합니까?" 포스터는 어셈블리가 더 이상 빌드 출력의 일부로 나타나지 않게하려고합니다.

이 경우 ReSharper가 identify 도움을 줄 수 있지만 remove 직접해야합니다.

이렇게하려면 References inth Solution Browser를 열고 참조 된 각 Assembly를 마우스 오른쪽 단추로 클릭 한 다음 "Find Dependent Code"를 선택하십시오. 보다:

http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code

당신은 얻을 것이다 :

  1. 브라우저 창에서 해당 참조에 대한 종속성 목록 또는

  2. "모듈 XXXXXXX에 종속 된 코드를 찾을 수 없습니다."라는 대화 상자가 나타납니다.

두 번째 결과를 얻는 경우 참조를 마우스 오른쪽 단추로 클릭하고 제거를 선택한 후 프로젝트에서 제거하십시오.

한 번에 하나의 참조로 "수동으로"이 작업을 수행해야하지만 작업이 완료됩니다. 누군가 어떤 방법으로 이것을 자동화하면 어떻게 완료되었는지 듣고 싶습니다.

.Net Framework의 항목은 일반적으로 빌드 출력에 복사되지 않으므로 일반적으로 Silverlight 앱에는 해당되지 않지만 무시할 수 있습니다.

일부 게시물은 "해당 파일 내에서 참조를 확인하는 데 필요하지 않은 소스 코드 파일에서 using 절 (C #)을 제거하는 방법"이라는 질문에 대한 답변으로 보입니다.

이 경우 ReSharper는 몇 가지 방법으로 도움을줍니다.

  1. 즉석 오류 감지 중에 사용되지 않은 using 절을 식별합니다. 코드 검사 경고로 나타납니다. 파일에서 코드가 회색으로 표시되고 (기본값) ReSharper가 힌트를 제공하여 제거합니다.

    http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection

  2. 코드 정리 프로세스의 일부로 자동 제거 할 수 있습니다.

    http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives

마지막으로 ReSharper는 솔루션에서 정적 코드 분석을 수행합니다. 따라서 리플렉션 또는 런타임에 동적으로로드되고 인터페이스를 통해 액세스되는 어셈블리를 통해 어셈블리에 대한 동적 참조가있는 경우이를 선택하지 않습니다. 프로젝트에서 작업 할 때 코드베이스와 프로젝트 종속성을 이해하는 대신 사용할 수 있습니다. ReSharper 기능이 매우 유용하다는 것을 알았습니다.

55
jlo

내가 쓴 ' 사용되지 않은 참조 제거 '확장명을 사용할 수 있습니다.

http://visualstudiogallery.msdn.Microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097

12
Spongman

사용하지 않는 참조를 제거하는 것은 Visual Studio 2008에서 이미 지원하는 기능입니다. 불행히도 VB .NET 프로젝트에 대해서만).

C # 프로젝트에 대해서도이 기능을 사용하기 위해 Microsoft Connect에 대한 제안을 열었습니다.

http://connect.Microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326

이 기능도 마음에 들면 내 제안에 투표 할 수도 있습니다.

7
jbe

이것을 시도하십시오 : Reference Assistant

요약

Reference Assistant는 Visual Studio 2010의 C #, F #, VB.NET 또는 VC++/CLI 프로젝트에서 사용되지 않은 참조를 제거하는 데 도움이됩니다.

5

ReSharper 6.1에는 다음 기능이 포함됩니다.

-참조 최적화 : 어셈블리 참조 및 코드 사용법을 코드로 분석하고 중복 참조 목록을 가져와 제거합니다.

-미사용 참조 제거 : 중복 어셈블리 참조를 제거하기위한 빠른 리팩토링.

-어셈블리 참조에 대한 안전한 삭제 : 모든 참조가 중복되면 어셈블리 참조를 삭제하고, 그렇지 않으면 사용법을 표시하지 않고 선택한 목록의 중복 어셈블리 참조 만 제거 할 수 있습니다.

4
Kirill Skrygan

Resharper 당신을 위해 이것을 할 것입니다 (그리고 훨씬 더!)

4
Chris Canal

VS 2010 Ultimate Architecture-> 종속성 그래프 생성-> 어셈블리별로 확장하지 않고이 작업을 수행하면 사용 된 어셈블리가 표시되고 사용되지 않은 참조는 수동으로 제거됩니다.

3
mes

모든 버전의 Visual Studio 및 모든 Framework 버전에서 작동하는 무료 답변이 있습니다. 사용되지 않은 참조는 제거하지 않지만 식별합니다.

프로젝트 dll에서 Telerik JustDecompile 을 사용할 수 있습니다. JustDecompile에서 dll을 열고 References 아래로 가서 컴파일 된 dll에서 실제로 사용되는 것을 확인하십시오.

enter image description here

2
toddmo

참조를 제거한 프로젝트에서 동일한 참조를 가진 다른 프로젝트에 대한 참조가 있기 때문에 bin \에 복사 된 것으로 생각합니다 ...

0
hdmq

사용되지 않은 참조를 알고 있으면 수동으로 제거 할 수 있습니다.
솔루션 탐색기의 References 노드에서 참조를 마우스 오른쪽 단추로 클릭 한 다음 제거를 클릭하십시오.

0
fat

VisualStudio (또는 msbuild?)가 사용되지 않은 참조를 감지하고이를 출력 파일에 포함하지 않는 경우 csproj에서 참조를 구문 분석하고이를 참조로 검색된 참조 된 어셈블리와 비교하는 스크립트를 작성할 수 있습니다. 프로젝트 출력.

동기가 있다면 ...

0
Benjol