Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

(시리즈 글이 2개 있습니다.)
개발 환경 구성: 666. 최신 버전의 ilasm.exe/ildasm.exe 사용하는 방법
; https://www.sysnet.pe.kr/2/0/13263

개발 환경 구성: 690. 닷넷 코어/5+ 버전의 ilasm/ildasm 실행 파일 구하는 방법 - 두 번째 이야기
; https://www.sysnet.pe.kr/2/0/13474




닷넷 코어/5+ 버전의 ilasm/ildasm 실행 파일 구하는 방법 - 두 번째 이야기

예전에도 한 번 쓴 적이 있는데요,

최신 버전의 ilasm.exe/ildasm.exe 사용하는 방법
; https://www.sysnet.pe.kr/2/0/13263

그때는 빈 프로젝트를 매개로 "dotnet add" 명령어를 이용해 다운로드를 했는데, 생각해 보니까, 굳이 그래야 할 이유가 없었습니다. ^^; 그냥 nuget install 명령어로 로컬에 패키지만 다운로드하는 것이 가능합니다.

c:\temp> nuget install runtime.win-x64.Microsoft.NETCore.ILAsm
...[생략]...

Adding package 'runtime.win-x64.Microsoft.NETCore.ILAsm.8.0.0' to folder 'c:\temp'
Added package 'runtime.win-x64.Microsoft.NETCore.ILAsm.8.0.0' to folder 'c:\temp'
Successfully installed 'runtime.win-x64.Microsoft.NETCore.ILAsm 8.0.0' to c:\temp
...[생략]...

마찬가지 방식으로 ILDasm도 다운로드할 수 있는데요, 따라서 위와 같은 식으로 설치하면 다음과 같은 경로에 ilasm, ildasm 실행 파일이 위치하게 됩니다.

C:\temp\runtime.win-x64.Microsoft.NETCore.ILAsm.8.0.0\runtimes\win-x64\native\ilasm.exe
C:\temp\runtime.win-x64.Microsoft.NETCore.ILDAsm.8.0.0\runtimes\win-x64\native\ildasm.exe




한 가지 더 첨언하자면, 이전 글에서는 "플랫폼"을 대충 고르는 식으로 설명했지만 실은 정확한 문자열을 고르는 것이 가능합니다. 아래의 글을 통해 알게 된 사실인데요, ^^

.net-core: Equivalent of ILDASM / ILASM
; https://stackoverflow.com/questions/39979851/net-core-equivalent-of-ildasm-ilasm

새삼스럽게도 해당 "플랫폼"은 RID를 의미하는 것이었습니다.

.NET RID Catalog
; https://learn.microsoft.com/en-us/dotnet/core/rid-catalog

결국 패키지 이름 형식은 아래와 같은데,

  • runtime.{RID}.Microsoft.NETCore.ILAsm
  • runtime.{RID}.Microsoft.NETCore.ILDAsm

여기서 원하는 RID를 간단하게는 dotnet --info 명령어로 구할 수 있습니다.

c:\temp> dotnet --info | findstr RID
 RID:         win-x64

즉 위와 같이 나오면 runtime.win-x64.Microsoft.NETCore.ILAsm가 되는 것이고, 아래와 같이 Ubuntu 환경에서 테스트한 결과가 나오면,

$ dotnet --info | grep RID
 RID:         ubuntu.20.04-x64

"runtime.ubuntu.20.04-x64.Microsoft.NETCore.ILAsm" 이름이 되는 것입니다. 아마도 마이크로소프트가 배포하는 이와 유사한 패키지들의 이름 규칙은 모두 저런 형식일 것입니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 12/7/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 61  62  63  64  65  66  67  68  69  70  71  72  [73]  74  75  ...
NoWriterDateCnt.TitleFile(s)
12112정성태1/12/202016832오류 유형: 589. PowerShell - 원격 Invoke-Command 실행 시 "WinRM cannot complete the operation" 오류 발생
12111정성태1/12/202020627디버깅 기술: 155. C# - KernelMemoryIO 드라이버를 이용해 실행 프로그램을 숨기는 방법(DKOM: Direct Kernel Object Modification) [16]파일 다운로드1
12110정성태1/11/202020035디버깅 기술: 154. Patch Guard로 인해 블루 스크린(BSOD)가 발생하는 사례 [5]파일 다운로드1
12109정성태1/10/202016712오류 유형: 588. Driver 프로젝트 빌드 오류 - Inf2Cat error -2: "Inf2Cat, signability test failed."
12108정성태1/10/202017531오류 유형: 587. Kernel Driver 시작 시 127(The specified procedure could not be found.) 오류 메시지 발생
12107정성태1/10/202018748.NET Framework: 877. C# - 프로세스의 모든 핸들을 열람 - 두 번째 이야기
12106정성태1/8/202019744VC++: 136. C++ - OSR Driver Loader와 같은 Legacy 커널 드라이버 설치 프로그램 제작 [1]
12105정성태1/8/202018223디버깅 기술: 153. C# - PEB를 조작해 로드된 DLL을 숨기는 방법
12104정성태1/7/202019477DDK: 9. 커널 메모리를 읽고 쓰는 NT Legacy driver와 C# 클라이언트 프로그램 [4]
12103정성태1/7/202022610DDK: 8. Visual Studio 2019 + WDK Legacy Driver 제작- Hello World 예제 [1]파일 다운로드2
12102정성태1/6/202018886디버깅 기술: 152. User 권한(Ring 3)의 프로그램에서 _ETHREAD 주소(및 커널 메모리를 읽을 수 있다면 _EPROCESS 주소) 구하는 방법
12101정성태1/5/202019253.NET Framework: 876. C# - PEB(Process Environment Block)를 통해 로드된 모듈 목록 열람
12100정성태1/3/202016685.NET Framework: 875. .NET 3.5 이하에서 IntPtr.Add 사용
12099정성태1/3/202019565디버깅 기술: 151. Windows 10 - Process Explorer로 확인한 Handle 정보를 windbg에서 조회 [1]
12098정성태1/2/202019318.NET Framework: 874. C# - 커널 구조체의 Offset 값을 하드 코딩하지 않고 사용하는 방법 [3]
12097정성태1/2/202017431디버깅 기술: 150. windbg - Wow64, x86, x64에서의 커널 구조체(예: TEB) 구조체 확인
12096정성태12/30/201919990디버깅 기술: 149. C# - DbgEng.dll을 이용한 간단한 디버거 제작 [1]
12095정성태12/27/201921736VC++: 135. C++ - string_view의 동작 방식
12094정성태12/26/201919458.NET Framework: 873. C# - 코드를 통해 PDB 심벌 파일 다운로드 방법
12093정성태12/26/201919083.NET Framework: 872. C# - 로딩된 Native DLL의 export 함수 목록 출력파일 다운로드1
12092정성태12/25/201917730디버깅 기술: 148. cdb.exe를 이용해 (ntdll.dll 등에 정의된) 커널 구조체 출력하는 방법
12091정성태12/25/201920148디버깅 기술: 147. pdb 파일을 다운로드하기 위한 symchk.exe 실행에 필요한 최소 파일 [1]
12090정성태12/24/201920193.NET Framework: 871. .NET AnyCPU로 빌드된 PE 헤더의 로딩 전/후 차이점 [1]파일 다운로드1
12089정성태12/23/201919116디버깅 기술: 146. gflags와 _CrtIsMemoryBlock을 이용한 Heap 메모리 손상 여부 체크
12088정성태12/23/201918112Linux: 28. Linux - 윈도우의 "Run as different user" 기능을 shell에서 실행하는 방법
12087정성태12/21/201918568디버깅 기술: 145. windbg/sos - Dictionary의 entries 배열 내용을 모두 덤프하는 방법 (do_hashtable.py) [1]
... 61  62  63  64  65  66  67  68  69  70  71  72  [73]  74  75  ...