为VS集成查看IL代码的环境
为VS集成IL工具
在VS2010中,在VS的安装目录/Tools/下有IL Disassembler这个工具(IL中间语言查看器),但是我想直接把它集成在VS2012里使用,这样就不用每次打开此程序。
操作方法
1、在VS中,选择 工具/外部工具,打开外部工具
ILDASM参数
2、点击右侧的 “添加”按钮,填写相关的参数
标题:ILDASM
命令:就是ildasm.exe的安装路径,根据情况选择自己磁盘上的路径
参数:注意这里需要选目标文件路径
初始目录:目标文件目录
3、添加完之后,可以在工具选项卡下看到 ILDASM
集成后使用
4、点击 工具/ILDASM,弹出确认窗口,点击确定
命令行的内容:D:\Code\CSharp\ildasm40\ildasm.exe "D:\Users\Documents\Visual Studio 2012\Projects\ConsoleApplication1\MyCollection\obj\Debug\MyCollection.exe"
命令行的前半部分是我的ildasm的安装路径,后半部分是我的项目路径
5、打开ILDASM工具的图形界面
6、双击需要查看的方法,会弹出IL代码
遇到的问题
我还没有配置出可以直接在VS自带的输出Tab卡看到IL的信息
IL指令资料
《IL指令详细》 列举出了所有的IL指令大全
IL Disassembler图例
ildasm下载
在vs2019的安装目录中未找到ildasm工具,而是在另一个目录: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\ildasm.exe
我把此工具上传在我的github中,点击链接下载
开源免费的ILSpy
推荐另一个开源工具可以反编译dll为C#和IL代码:ILSpy
打开dll之后可以选择这几个模式:
1.C#
2.IL
3.IL with C# (在IL代码中会有C#的注释行)
4.ReadyToRun (对于Unity生成的dll此模式提示:; Failed to convert invalid RVA to offset: 0)
在Rider中查看IL代码
以Rider2019.2为例,点击Tools - IL Viewer 就可以查看IL代码,支持.net项目和Unity项目。