SuperAPI AI 工具集

ilspy-decompile

编程与开发

查看项目

更新于 10-16 01:38

技能介绍

用途:帮助理解 .NET 代码内部实现,通过反编译已编译程序集,查看 .NET API、NuGet 包、运行时库等内部结构。

前置条件:需安装 .NET SDK,并具备 ILSpy 命令行工具,可用 dotnet dnx ilspycmd 或 dotnet tool install --global ilspycmd 获取。不同版本选项可能有差异,建议用 ilspycmd -h 确认支持的参数。

常用位置:NuGet 包位于 ~/.nuget/packages/<package-name>/<version>/lib/<tfm>/;运行时库与 SDK 引用程序集可分别用 dotnet --list-runtimes、dotnet --list-sdks 查看,但引用程序集不含实现。项目构建产物在 ./bin/Debug/net8.0/<AssemblyName>.dll 或 ./bin/Release/net8.0/publish/<AssemblyName>.dll。

基本用法:ilspycmd MyLibrary.dll 可输出到标准输出;-o output-folder 指定输出目录;-p -o ./project 输出为项目;-t Namespace.ClassName 反编译指定类型;-l 配合实体类型列出类、接口、结构体、委托或枚举;-lv 指定 C# 语言版本,默认 Latest;-il 查看 IL 代码;--no-dead-code --no-dead-stores 可清理无用代码;--nested-directories -p -o ./decompiled 按命名空间生成嵌套目录。

适用场景:排查 .NET API 实现逻辑、检查 NuGet 包内部行为等。限制:ReadyToRun 映像可能降低可读性,裁剪或 AOT 构建可能缺代码,建议使用未裁剪构建;反编译程序集可能受许可证条款限制。