닷넷 코어/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" 이름이 되는 것입니다. 아마도 마이크로소프트가 배포하는 이와 유사한 패키지들의 이름 규칙은 모두 저런 형식일 것입니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]