15

.net-core の ILDASM / ILASM に相当するものはありますか?

具体的には、Linux で動作するものを探しています (したがって、なぜ .net-core なのか)。

4

4 に答える 4

10

ildasm ツールと ilasm ツールはどちらも、https ://github.com/dotnet/coreclr リポジトリの CoreCLR を使用して構築されています。これらには、Windows に同梱されているバージョンと同様の機能が含まれています (sans GUI など)。

それらを含む nuget パッケージも出荷されています ( https://www.nuget.org/packages?q=ildasm ) が、それらはプラットフォーム固有であり、使用する CoreCLR の一致するバージョンも必要とするため、簡単ではありません。ナゲット経由で消費します。プラットフォームでこれらを実行する最も簡単な方法は、coreclr リポジトリのソースからビルドすることです。

于 2016-10-18T21:47:41.183 に答える
4

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 エクスポート構文を処理していないようです。

于 2016-10-11T18:39:03.477 に答える
2

関連する nuget-package を使用して、ildasmツールを「インストール」しましょう。

  • 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 {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
于 2020-12-26T04:05:44.940 に答える