首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net核心:相当于ILDASM / ILASM

.net核心:相当于ILDASM / ILASM
EN

Stack Overflow用户
提问于 2016-10-11 14:38:54
回答 3查看 7.8K关注 0票数 16

是否有相当于..net核的ILDASM / ILASM?

具体来说,我想找的是在Linux上运行的东西(这就是..net core的原因)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-18 21:47:41

ildasm和ilasm工具都是用这个repo: CoreCLR的https://github.com/dotnet/coreclr构建的。它们包括与Windows附带的版本类似的功能(sans、GUI等)。

有些nuget包也包含它们(https://www.nuget.org/packages?q=ildasm),但是它们是特定于平台的,并且还需要一个匹配的CoreCLR版本来使用,所以通过nuget使用它们并不简单。在您的平台上运行这些程序的最简单方法就是从coreclr中构建它们。

票数 10
EN

Stack Overflow用户

发布于 2016-10-11 18:39:03

在Linux上,似乎没有本地的Microsoft工具为这些功能提供服务,而且它目前也没有内置到点网络内核中。

但是,Mono允许对IL代码进行组装和拆卸:

安装说明可以在这里找到。

你要找的是:

代码语言:javascript
复制
ilasm - For assembling
monodis - For disassembling

这些是在包单用程序中找到的:

例如,关于Debian 8,我做了以下工作:

代码语言:javascript
复制
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导出语法。

票数 4
EN

Stack Overflow用户

发布于 2020-12-26 04:05:44

让我们使用相关的nuget-package“安装”ildasm工具:

  • 定义洗净 (运行时标识符)
代码语言:javascript
复制
dotnet --info

# execution result
..
Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64 # <----
..
  • 下载包运行时。{RID}.Microsoft.NETCore.ILDAsm。我的例子是:runtime.ubuntu.18.04-x64.Microsoft.NETCore.ILDAsm
  • 解压缩它并解压缩可执行文件‘/运行时/{RID}/本机/ildasm’
  • 授予它执行权限并复制到.NET运行时文件夹(调用dotnet -列表-运行时列表运行时)
代码语言:javascript
复制
chmod +x ildasm
sudo mv ildasm /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/
  • 创建符号链接
代码语言:javascript
复制
ln -s /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/ildasm ildasm
  • 跑沟
代码语言:javascript
复制
./ildasm {path}/project.dll >> {path}/project.il

同样的步骤也适用于伊尔卡姆

作为另一种方式,可以考虑使用dotnet-ildasm工具:

代码语言:javascript
复制
# 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到文件:

代码语言:javascript
复制
# go to project folder
cd ../project/bin/Debug/netx.x

dotnet ildasm program.dll -o program.il
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39979851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档