dotPeek의 새로운 기능

이 페이지에서는 dotPeek의 최신 업데이트와 변경 사항을 자세히 설명합니다.

새로운 전용 Assembly Diff(어셈블리 Diff) 도구 창

C# 13 지원 강화와 가독성 업그레이드 2025.1

2025.1 릴리스에서는 디컴파일러가 여러 면에서 개선되어, 최신 C# 기능 지원이 강화되고 코드 가독성도 향상되었습니다. 새롭게 추가된 기능은 다음과 같습니다.

  • required 멤버 지원.
  • C# 13에서 새롭게 도입된 System.Threading.Lock 타입 지원.
  • ref 필드와 scoped 매개변수 한정자 지원.
  • allows ref struct 제네릭 반제약 조건 지원.
  • ref struct 타입을 위한 패턴 기반 using.
  • 문자열 보간 지원.
  • 디컴파일링된 코드의 일부 정수 상수에 주석이 달린 16진수 표현 추가로 가독성 향상.
  • 파일 범위 네임스페이스 지원.
새로운 전용 Assembly Diff(어셈블리 Diff) 도구 창

어셈블리 매니페스트용 IL 코드 제공 2024.3

IL Viewer(IL 뷰어) 도구 창에서 이제 다음을 포함하여 어셈블리 매니페스트용 IL 코드를 제공합니다.

  • 이름, 사용자 지정 속성 등의 어셈블리 및 모듈 정보
  • 참조된 어셈블리 및 모듈
  • 포워딩된 타입
  • 파일 및 리소스 목록

이 IL 코드는 텍스트 에디터의 캐럿이 어셈블리나 모듈 속성에 있거나, 외부 어셈블리의 경우 <AssemblyName>.cs 파일 내부에 있을 때 표시됩니다.

기본 생성자 지원 2024.3

기본 생성자를 선언한 클래스로 작업할 때, dotPeek에서 이제 생성자와 해당 매개변수를 올바르게 표시하므로, 디컴파일링된 코드에서 객체가 바로 인스턴스화되는 방식을 완벽하게 확인할 수 있습니다.

일반적인 개선 사항 2024.2

  • 람다 매개변수: 선택적인 매개변수-배열 형태의 매개변수가 포함된 람다의 디컴파일이 지원되어 디컴파일링된 코드의 가독성과 정확도가 개선되었습니다.
  • 람다상의 속성: 이 도구에서 람다 식에 포함된 속성의 처리가 개선되어 모든 관련 메타데이터가 디컴파일링된 출력에서 정확하게 반영됩니다.
  • 보호된 어셈블리: 보호된 어셈블리를 디컴파일링할지 여부를 지정하는 기능이 추가되어 코드를 더욱 포괄적으로 탐색할 수 있습니다.

외부 소스 처리 2024.2

  • SrcSrv 및 SourceLink가 포함된 PDB: 디컴파일러가 이제 SrcSrv 및 SourceLink가 모두 포함된 PDB 파일에서 소스로의 이동을 지원합니다.
  • 전처리기 지시문: 디컴파일러가 타깃 프레임워크나 연결된 어셈블리의 Portable PDB의 전처리기 지시문(예: NET6_0_OR_GREATER)을 올바르게 인식하므로 코드가 정확하게 표시됩니다.
  • Open in Browser(브라우저에서 열기) 액션: 이제 특정 타입의 저장소에 있는 소스 코드나 NuGet 패키지 또는 어셈블리의 저장소로 이동할 수 있습니다.

빌드 구성 탐지 2024.2

Assembly Explorer(어셈블리 탐색기) 도구 창이 이제 어셈블리 빌드 구성을 탐지하고 표시하여 어셈블리의 컴파일링 컨텍스트에 관한 더 명확한 인사이트를 제공합니다.

새로운 전용 Assembly Diff(어셈블리 Diff) 도구 창

새로운 전용 Assembly Diff(어셈블리 Diff) 도구 창 2024.1

2024.1 업데이트에는 dotPeek에 새로운 Assembly Diff(어셈블리 Diff) 도구 창이 도입되었으며 이와 함께 몇 가지가 변경되었습니다.

  • 어셈블리, NuGet 패키지, 폴더 및 .zip 아카이브를 비교하는 기능이 Assembly Explorer(어셈블리 탐색기)에서 Assembly Diff 도구 창으로 이동되었습니다.
  • Diff mode(Diff 모드) 선택자와 Compare(비교)Diff Options(Diff 옵션) 버튼이 Assembly Diff 도구 창의 Actions(액션) 표시줄로 재배치되었습니다.
WebCIL 패키징 형식 지원

WebCIL 패키징 형식 지원 2024.1

dotPeek은 이제 WebAssemblies용 WebCIL 패키징 형식을 지원합니다. 지원 내용은 다음과 같습니다.

  • WebCIL 디컴파일링
  • Assembly Explorer(어셈블리 탐색기)에서 .wasm 파일 확인
  • WASM 및 WebCIL 헤더를 포함하여 Assembly Explorer(어셈블리 탐색기)에 있는 WASM 노드의 메타데이터 하위 트리
더 많은 C# 언어 기능

어셈블리 Diff 개선 2023.3

dotPeek 2023.3은 NuGet 패키지, 폴더 및 .zip 파일을 비교할 수 있습니다.

이제 어셈블리 비교 기능에 더 많은 비교 옵션이 생겼습니다. 여러 Diff 모드(Show all(모두 표시), Show only differences(차이만 표시), Show only signature differences(시그니처 차이만 표시), Show only public API differences(공개 API 차이만 표시)) 중에서 선택할 수 있습니다. 또한 Diff에서 멤버/속성 순서 차이와 null 가능 참조 타입 어노테이션의 차이를 무시하도록 지정할 수 있습니다.

더 많은 C# 언어 기능

Assembly Explorer 업데이트 2023.3

  • 이제 Assembly Explorer(어셈블리 탐색기)에서 NuGet 패키지를 탐색할 때 해당 NuGet 패키지 내에 포함된 모든 파일과 폴더를 볼 수 있습니다.
  • 크기와 유형(파악 가능한 경우)을 포함한 Win32 리소스 노드를 이제 노드 표시 트리와 Properties(프로퍼티) 패널에서 볼 수 있습니다.

기타 업데이트 2023.3

  • 이제 Win32 문자열 테이블 리소스를 디코딩하는 기능이 도입되었습니다.
  • 이제 dotPeek은 어셈블리/비 어셈블리, 번들 내의 파일, 아카이브, NuGet 패키지, 비교된 어셈블리 및 Win32 리소스와 관련하여 Properties(프로퍼티) 패널 내에 열린 파일의 크기를 표시합니다.
  • 이제 어셈블리 인증코드 시그니처 유효성 검사를 사용할 수 있습니다.
  • 명시적인 #nullable disable 지시문은 디컴파일링된 소스에 표시됩니다.
더 많은 C# 언어 기능

IL Viewer(IL 뷰어) 도구 창 2023.1

dotPeek 2023.2에서는 두 어셈블리를 자세히 비교할 수 있습니다. 이 기능은 특정 어셈블리의 두 버전 간의 차이점을 면밀히 조사하고 최신 버전에 도입되었을 수 있는 잠재적 취약성을 찾아낼 때 특히 유용합니다.

자세한 내용을 보려면 여기를 클릭하세요.

IL Viewer(IL 뷰어) 도구 창 2023.1

dotPeek 2023.1 버전에는 IL Viewer(IL 뷰어) 도구 창에 대한 다음과 같은 개선 사항이 포함되어 있습니다.

  • 이제 지역 변수 이름이 하위 수준상위 수준 C# 코드 모두에 사용되고 변수 튜플 요소 이름이 원래 소스에서와 같이 상위 수준 C# 코드에 사용됩니다.
  • 주석 추가된 튜플 요소 이름은 중간 언어(IL) 코드의 지역 변수 선언을 위해 PDB/디컴파일러에서 렌더링됩니다.
  • 필드 및 프로퍼티 이니셜라이저, 반복자 내부의 구문, async 메서드, 람다, 지역 함수, 그리고 상위 수준 C#에 대한 지역 함수 및 중첩된 지역 함수 선언에 대한 동기화가 개선되었습니다.