Linux でこれらの機能を提供するネイティブの Microsoft ツールはないようで、現在 dot-net-core に組み込まれていません。
ただし、Mono では IL コードのアセンブリと逆アセンブリが可能です:
インストール手順はこちらにあります。
あなたが探しているのは:
ilasm - For assembling
monodis - For disassembling
これらはパッケージ mono-utils にあります:
例えばDebian 8 では、次のことを行いました:
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
ただし、参考までに、エクスポートを作成しようとしている人にとっては、Mono は x64 エクスポート構文を処理していないようです。
ildasm ツールと ilasm ツールはどちらも、https://github.com/dotnet/coreclr リポジトリの CoreCLR を使用して構築されています。これらには、Windows に同梱されているバージョンと同様の機能が含まれています (sans GUI など)。
それらを含む nuget パッケージも出荷されています (https://www.nuget.org/packages?q=ildasm) が、それらはプラットフォーム固有であり、使用する CoreCLR の一致するバージョンも必要とするため、簡単ではありません。ナゲット経由で消費します。これらをプラットフォームで実行する最も簡単な方法は、coreclr リポジトリのソースからビルドすることです。
ildasm を「インストール」しましょう 関連する nuget-package を使用するツール:
- RID (ランタイム識別子) を定義する
dotnet --info
# execution result
..
Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-x64 # <----
..
- パッケージをダウンロードしますruntime.{RID}.Microsoft.NETCore.ILDAsm .私の場合は次のとおりです:runtime.ubuntu.18.04-x64.Microsoft.NETCore.ILDAsm
- アーカイブを解凍し、実行可能ファイルを抽出します '/runtimes/{RID}/native/ildasm'
- 実行権限を付与し、.NET ランタイム フォルダーにコピーします (dotnet --list-runtimes を呼び出します) ランタイムをリストする)
chmod +x ildasm
sudo mv ildasm /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/
- シンボリックリンクを作成
ln -s /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/ildasm ildasm
- ildasm を実行
./ildasm {path}/project.dll >> {path}/project.il
ilasm にも同じ手順を適用できます。
別の方法として、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
IL をファイルに出力:
# go to project folder
cd ../project/bin/Debug/netx.x
dotnet ildasm program.dll -o program.il