Tampaknya tidak ada alat Microsoft asli yang melayani fungsi-fungsi ini di Linux dan saat ini tidak dibangun ke dalam dot-net-core.
Namun, Mono mengizinkan perakitan dan pembongkaran kode IL:
Petunjuk Instalasi dapat ditemukan di sini.
Yang Anda cari adalah:
ilasm - For assembling
monodis - For disassembling
Ini ditemukan dalam paket mono-utils:
misalnya Pada Debian 8 saya melakukan hal berikut:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian jessie" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
apt-get install mono-devel mono-utils
Namun, FYI, bagi mereka yang mencoba membuat ekspor, Mono tampaknya tidak menangani sintaks ekspor x64.
Alat ildasm dan ilasm dibangun dengan CoreCLR dari repo ini:https://github.com/dotnet/coreclr. Mereka menyertakan fungsi yang serupa dengan versi yang disertakan dengan Windows (tanpa GUI, dll.).
Ada paket nuget yang dikirimkan yang menyertakannya juga (https://www.nuget.org/packages?q=ildasm), tetapi mereka khusus platform dan juga memerlukan versi CoreCLR yang cocok untuk digunakan, sehingga tidak langsung untuk dikonsumsi melalui nuget. Cara termudah untuk menjalankan ini di platform Anda adalah dengan membangunnya dari sumber dari repo coreclr.
Ayo 'pasang' ildasm alat menggunakan nuget-package terkait:
- menentukan RID (Runtime Identifier)
dotnet --info
# execution result
..
Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-x64 # <----
..
- unduh paket runtime.{RID}.Microsoft.NETCore.ILDAsm . Untuk kasus saya ini adalah:runtime.ubuntu.18.04-x64.Microsoft.NETCore.ILDAsm
- buka arsip dan ekstrak file yang dapat dieksekusi '/runtimes/{RID}/native/ildasm'
- berikan izin eksekusi dan salin ke folder .NET runtime (panggil dotnet --list-runtimes untuk membuat daftar runtime)
chmod +x ildasm
sudo mv ildasm /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/
- buat symlink
ln -s /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/ildasm ildasm
- jalankan ildasm
./ildasm {path}/project.dll >> {path}/project.il
Langkah yang sama berlaku untuk ilasm.
Sebagai alternatif, pertimbangkan untuk menggunakan alat dotnet-ildasm:
# install .net core runtime if required
# sudo apt-get update; \
# sudo apt-get install -y apt-transport-https && \
# sudo apt-get update && \
# sudo apt-get install -y dotnet-runtime-3.0
# find required tool
dotnet tool search ildasm
# output:
# Package ID Latest Version Authors Downloads Verified
# ---------------------------------------------------------------------------
# dotnet-ildasm 0.12.2 pjbgf 100154
# dotasm 1.0.1 DotAsm 434
# install tool
dotnet tool install -g dotnet-ildasm
Keluarkan IL ke file:
# go to project folder
cd ../project/bin/Debug/netx.x
dotnet ildasm program.dll -o program.il