문제

Compile .NET 어셈블리와 비교할 좋은 프로그램이 있습니까?

예를 들어 Helloworld.dll (1.0.0.0) 및 Helloworld.dll (2.0.0.0)이 있으며 차이점을 비교하고 싶습니다. 어떻게해야합니까?

.NET 리플렉터를 사용하고 어셈블리 Diff 플러그인을 사용할 수 있다는 것을 알고 있습니다. 이 작업을 수행 할 다른 좋은 도구가 있습니까?

도움이 되었습니까?

다른 팁

두 가지 방법.

고전적인 도구로 Idlasm과 Diff를 할 수 있습니다.

또는 해당 기능의 비용이 드는 NDepends를 사용할 수 있습니다.

C# bloaters에 대한 조각 ..

동일한 버전을 가진 동일한 DLL의 두 가지 개정판을 비교해야했습니다 (작은 핫픽스를 구현하고 프로덕션에 DLL을 배포해야했지만 다른 변경 사항이 코드에 유출되지 않도록하고 싶었습니다). 이상적으로는 어셈블리 DIFF 애드 인이 차이를 보여주기를 원하지만 작동하지 않습니다 (DLL 자체를 비교한다고 생각합니다). 그래서 이것이 내가 한 일입니다.

  • 분해 된 소스 파일을 보유 할 두 개의 폴더를 만들었습니다.
  • 사용 반사기'에스 내보내다 옵션 (컨텍스트 메뉴에서) 이전 단계에서 생성 된 폴더에서 각 DLL에서 소스 파일을 생성합니다.
  • 무료를 사용했습니다 확산 두 디렉토리를 비교하는 도구; 도구는 수정 된 파일과 차이를 보여주었습니다.

약간 kludgy이지만 작동하는 것 같습니다. 그래도 어셈블리 DIFF 애드 인이 작동하기를 바랍니다.

업데이트 : 최신 버전의 어셈블리 DIFF 애드 인은 동일한 어셈블리의 두 버전을 비교하는 문제를 해결해야합니다. 시도 해봐.

도구 ndepend .NET 코드 diff를 처리 할 수있는 많은 기능을 제공합니다. 면책 조항 : 저는 도구의 개발자 중 하나입니다..

패널 변화로 검색하십시오 어셈블리를 찾아 내기 위해 전용입니다. 코드 Diff. 그것을주의해라:

  • 메뉴에서 사용하는 모든 코드 Diff 도구를 ndeport에 연결할 수 있습니다. 이전 및 최신 버전의 소스 파일을 비교하십시오
  • 소스 코드가 없으면 원시 어셈블리 만 있으면 옵션이 있습니다. 더 오래되고 최신 버전을 반사판으로 분해합니다

NDepend Search by Diff Panel

스크린 샷에서도 a CQLINQ 코드 쿼리 Diff를 탐색하기 위해 생성됩니다.

from m in Application.Methods 
where m.CodeWasChanged() 
select new { m, m.NbLinesOfCode }

다른 많은 기본 차이 쿼리 및 규칙은 기본적으로 제안되므로 .NET 코드 Diff를 스마트 한 방식으로 찾아 볼 수 있습니다.

하나 더 옵션이 있습니다 libcheck Microsoft에서.

공개 API Diff를 얻기위한 꽤 오래된 콘솔 도구. 더 최근의 .NET 버전으로 디버깅 및 리 타겟팅없이 실행할 수 없었습니다. 그러나 그것은 나에게 매우 명확한 출력을 주었고 나중에 그것을 사용할 것입니다.

여기에 있습니다 기사 스크린 샷으로.

Java는 좋은 것을 가지고 있습니다. 시맨틱 차이 유틸리티

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top