
ILSpy v11.0-rc
.NET 디컴파일러, PDB 생성 지원, ReadyToRun, 메타데이터(및 기타) - 크로스 플랫폼!
ILSpy

ILSpy는 오픈 소스 크로스 플랫폼 .NET 어셈블리 브라우저이자 디컴파일러입니다. 데스크톱 UI는 Windows, Linux, macOS에서 실행됩니다(Avalonia 기반으로 구축됨).
다운로드: 최신 릴리스 | 최신 CI 빌드 (master) | Microsoft Store (RTM 버전 전용)
디컴파일러 프런트엔드
크로스 플랫폼 데스크톱 UI인 ILSpy(Releases를 통해 다운로드 가능, 플러그인도 참고) 외에도 다음과 같은 다른 프런트엔드가 제공됩니다:
- Visual Studio 2022/2026에는 F12에 대한 디컴파일 지원이 기본적으로 활성화되어 제공됩니다(각각 엔진 v8.2 및 v9.1 사용).
- Visual Studio 2022/2026 확장 마켓플레이스
- Visual Studio Code 확장 저장소 | 마켓플레이스 | open-vsx
- Linux/Mac/Windows용 dotnet 도구 - 이 저장소의 ILSpyCmd를 확인하세요 | dotnet tool install
- C# for Visual Studio Code에도 디컴파일 지원이 포함되어 있습니다. 활성화하려면 "Enable Decompilation Support" 설정을 켜세요.
- 자체 프로젝트를 위한 ICSharpCode.Decompiler 및 ILSpyX NuGet 패키지
- 이 저장소의 Linux/Mac/Windows PowerShell cmdlet
기능
- C#으로의 디컴파일 (언어 지원 현황 확인)
- 전체 프로젝트 디컴파일
- NuGet 피드에서 열기, 디스크 및 GAC(Windows 전용) 외에도 실행 중인 프로세스에서 열기
- 타입/메서드/속성 검색 (옵션 알아보기)
- 하이퍼링크 기반 타입/메서드/속성 탐색, 북마크
- 기본/파생 타입 탐색, 기록
- 어셈블리 메타데이터 탐색기 (기능 둘러보기)
- BAML에서 XAML로의 디컴파일러, !AvaloniaResources 지원
- .NET Core용 ReadyToRun 바이너리 지원 (튜토리얼 참고)
- 플러그인을 통한 확장 가능
- DEBUG 빌드의 추가 기능 (개발자용)
라이선스
ILSpy는 MIT 라이선스에 따라 배포됩니다. 자세한 내용은 About 문서와 포함된 오픈 소스 라이브러리에 대한 제3자 고지를 참조하세요.
빌드 방법
Windows:
- PowerShell 7 이상이 설치되어 있는지 확인하세요 (Windows PowerShell 5.0 이상도 작동합니다).
- git을 사용하여 ILSpy 저장소를 복제합니다.
git submodule update --init --recursive를 실행하여 ILSpy-Tests 서브모듈을 다운로드합니다 (일부 테스트 케이스에서 사용됨).- Visual Studio를 설치합니다 (문서화된 버전: 18.0/2026). 다음 워크로드 구성 요소가 필요합니다:
- 워크로드 ".NET 데스크톱 개발". 이 워크로드에는 .NET Framework 4.8 SDK와 .NET Framework 4.7.2 대상 팩, 그리고 .NET 10.0 SDK가 포함됩니다 (ILSpy.csproj는 .NET 10.0을 대상으로 하지만 net472 프로젝트도 있습니다). 단위 테스트에는 .NET 11.0 SDK가 필요합니다.
- 워크로드 "Visual Studio 확장 개발" (참고: ILSpy.VSExtensions.slnx는 ILSpy.slnx와 별개이므로 이 워크로드는 선택 사항입니다)
- 개별 구성 요소 "MSVC v143 - VS 2022 C++ x64/x86 빌드 도구" (또는 유사한 항목)
- VC++ 도구 집합은 선택 사항입니다; 존재하는 경우
editbin.exe를 사용하여 ILSpy.exe가 사용하는 스택 크기를 1MB에서 16MB로 수정하는 데 사용됩니다. 디컴파일러는 재귀를 많이 사용하며, 스택 크기가 작으면 매우 복잡한 메서드에서 문제가 발생하기 때문입니다.
- VC++ 도구 집합은 선택 사항입니다; 존재하는 경우
- Visual Studio에서 ILSpy.slnx를 엽니다.
- NuGet 패키지 복원이 추가 종속성을 자동으로 다운로드합니다
- ILSpy UI를 실행하려면 "ILSpy" 프로젝트를 실행합니다
- Visual Studio "테스트 탐색기"를 사용하여 테스트를 확인/실행합니다
- ILSpy의 특정 하위 집합에만 관심이 있는 경우 다음을 사용할 수도 있습니다
- ILSpy.Desktop.slnf: 크로스 플랫폼 Avalonia UI 및 해당 테스트용
- ILSpy.XPlat.slnf: 크로스 플랫폼 CLI(ilspycmd) 또는 PowerShell cmdlet용
- ILSpy.VSExtensions.slnx: Visual Studio 확장용
참고: Visual Studio에는 Visual Studio 설치 관리자가 관리하는 .NET SDK 버전이 포함되어 있으며, 업데이트하면 해당 SDK도 업그레이드될 수 있습니다. ILSpy는 .NET 11.0 SDK와만 호환되며, Visual Studio는 솔루션의 일부 프로젝트를 로드하지 못할 수 있습니다 (그리고 단위 테스트도 실패합니다). 이 문제가 발생하면 여기에서 .NET 11.0 SDK를 수동으로 설치하세요.
Unix / Mac:
- .NET 10.0 SDK(실행용)와 .NET 11.0 SDK(테스트용)가 설치되어 있는지 확인하세요. 더 나은 방법은 SDK 채널 preview와 함께 dotnetup을 사용하는 것입니다.
- PowerShell이 설치되어 있는지 확인하세요 (이전 명칭 PowerShell Core)
- git을 사용하여 저장소를 복제합니다.
git submodule update --init --recursive를 실행하여 ILSpy-Tests 서브모듈을 다운로드합니다 (일부 테스트 케이스에서 사용됨).dotnet build ILSpy.Desktop.slnf를 사용하여 크로스 플랫폼 Avalonia 데스크톱 UI를 빌드하고,dotnet run --project ILSpy로 실행합니다.dotnet build ILSpy.XPlat.slnf를 사용하여 CLI 도구(ilspycmd)와 PowerShell cmdlet만 빌드합니다.
Visual Studio Code 또는 그 파생 제품과 함께 DotRush를 사용하는 것을 권장하며, DotRush는 VS Code 파생 제품에서도 사용할 수 있습니다.
기여 방법
- 버그를 보고하세요
- 풀 리퀘스트를 기여하려면 잘못된 형식의 코드가 체크인되는 것을 방지하기 위해 https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit 을
.git/hooks에 추가하세요. 우리는 공백이 아닌 탭을 사용합니다. 빌드 서버에서도 동일한 스크립트를 실행하므로, 잘못된 형식을 사용하는 풀 리퀘스트는 실패합니다.
현재 및 과거 기여자.
ILSpy 개인정보 처리방침
ILSpy는 개인 식별 정보를 수집하지 않으며, 사용자 파일을 제3자 서비스로 전송하지 않습니다. ILSpy는 텔레메트리나 메트릭을 수집하기 위해 APM(애플리케이션 성능 관리) 서비스를 사용하지 않습니다.