这个项目能做什么

Harmony 是一个功能强大的 .NET 和 Mono 库,允许开发者在运行时更改应用程序的功能,而无需修改原始源代码或文件。它提供优雅的高级 API 来修补方法,使代码能够在原始方法之前、之后运行,甚至替换原始方法,还可以直接修改方法的 IL 代码。这使其非常适合制作游戏模组、扩展应用程序,或为测试和调试添加检测功能。 该库在模组社区中已经相当成熟,支持 Rust、Rimworld、Stardew Valley 和 Cities: Skylines 等热门游戏。它也用于专业环境,例如在 Microsoft 和 Google 对 WPF 控件进行单元测试。Harmony 支持多个补丁共存而不冲突,确保了稳定性和灵活性。 通过 NuGet 安装非常简单,有两个包选项:Lib.Harmony 是依赖合并的单文件程序集(首选),Lib.Harmony.Thin 则适合希望自行管理依赖的用户。完整文档可在 harmony.pardeike.net 查看,官方 Discord 服务器提供社区支持。 该项目正在积极维护中,Harmony 2.x 位于 master 分支,Harmony 3 的开发(包括 Infix 修补)位于单独的分支。Harmony 1 已弃用,且与 2.x 不兼容。该库利用 MonoMod.Core 提供底层 IL 操作能力。 对于希望动态扩展或修改 .NET 应用程序的开发者,Harmony 提供了一个健壮、经过充分测试的解决方案,拥有庞大的用户群和持续的贡献。