关于 ilspy-decompile
使用 ILSpy 检查已编译 .NET 程序集的技能,指导开发者定位程序集,并反编译整个文件、指定类型或 IL 代码。
主要功能
- 01将程序集反编译到标准输出
- 02将结果写入目录
- 03反编译指定类型
- 04查看 IL 代码
- 05定位常见程序集路径
适用场景
- 01了解已编译 .NET 库的行为
- 02检查程序集中的特定类型
- 03查看 IL 输出
- 04在 NuGet 或构建目录中查找程序集
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aaronontheweb/ dotnet-skills --skill ilspy-decompile安装后在 Claude Code 中输入/ilspy-decompile确认已加载。
详细介绍
使用 ILSpy 反编译 .NET 程序集
使用此技能,通过反编译已编译的程序集来了解 .NET 代码的内部工作方式。
前提条件
- 已安装 .NET SDK
- 可通过以下任一方式使用 ILSpy 命令行工具:
dnx ilspycmd(如果你的 SDK 或运行时支持)dotnet tool install --global ilspycmd
以下会展示这两种方式。请选择在你的环境中可用的方式。
注意:ILSpyCmd 选项可能会因版本略有不同。
请务必通过ilspycmd -h查看支持的标志。
快速入门
# Decompile an assembly to stdout
ilspycmd MyLibrary.dll
# or
dnx ilspycmd MyLibrary.dll
# Decompile to an output folder
ilspycmd -o output-folder MyLibrary.dll
常见的 .NET 程序集位置
NuGet 包
~/.nuget/packages/<package-name>/<version>/lib/<tfm>/
.NET 运行时库
dotnet --list-runtimes
.NET SDK 参考程序集
dotnet --list-sdks
参考程序集不包含实现。
项目构建输出
./bin/Debug/net8.0/<AssemblyName>.dll
./bin/Release/net8.0/publish/<AssemblyName>.dll
核心工作流
- 确定你想了解的内容
- 找到程序集
- 列出类型
- 反编译目标
命令
基本反编译
ilspycmd MyLibrary.dll
ilspycmd -o ./decompiled MyLibrary.dll
ilspycmd -p -o ./project MyLibrary.dll
定向反编译
ilspycmd -t Namespace.ClassName MyLibrary.dll
ilspycmd -lv CSharp12_0 MyLibrary.dll
查看 IL 代码
ilspycmd -il MyLibrary.dll
关于现代 .NET 构建的注意事项
- ReadyToRun 映像可能会降低可读性
- 修剪或 AOT 构建可能会省略代码
- 优先使用未修剪的构建
法律声明
反编译程序集可能受到许可证限制。
评论
支持 Markdown