和谐

和谐

一个用于在运行时修补、替换和装饰.NET与Mono方法的库。 旨在确保玩家模组列表中的所有模组都使用最新版本的Harmony,以最小化冲突。 我们还添加了调试界面!可用

实用工具

备注

这是一个非官方的Harmony库分发版本,旨在提供更简便的方式来管理外部库依赖。 该模组的存储库 - Bannerlord.Harmony。 《骑马与砍杀II:霸主》Lib.Harmony 模组开发者公告 原版Harmony库现已全面支持netstandard2.0,因此我们已恢复使用原版。我们维护的分支库现已弃用。 安装 该模块应在加载顺序中处于最高优先级。任何其他需要置顶的模块(如Better Exception Window、ButterLib、MCM等)都应在此模组之后加载。 致玩家 本模组旨在确保玩家模组列表中的所有模组都使用最新版本的Harmony,以最大程度减少冲突。 为模组制作者 我们添加了调试界面!可通过CTRL+ALT+H访问。 你仍然需要将 Harmony 作为 NuGet 包引用,但不需要将 0Harmony.dll 包含在模块最终的 /bin 输出中。 你需要将这个添加到你的SubModule.xml中 <依赖模块> <DependedModule Id="Bannerlord.Harmony" /> </依赖模块> 这样游戏就能确保 Harmony 库在你的模组之前加载。 版本控制 该模块结合了所使用的Harmony版本和发布该模块的构建ID。构建ID简单地附加在末尾。 2.0.2.22 表示使用的是 Harmony 2.0.2.0 版本,22 是构建编号。 2.0.0.1025 表示使用的是 Harmony 2.0.0.10 版本,而 25 是构建编号。 我们考虑过采用类似 Rimworld 的方法,引入自己的版本系统,但这无法明确检测模块中包含的 Harmony 版本。
对用户来说,直接报告所用模块的版本比检查程序集版本/发送它要简单得多。 故障排除

  • 解压遇到问题?请通过Vortex安装,或下载7-zip。切勿使用Windows应用商店的任何工具。    我们还添加了一篇关于如何安装和使用7-zip的文章!
  • 如果游戏在启动时崩溃,很可能是因为您正在使用或曾经使用过Fixed Launcher。安装时它会复制0Harmony.dll文件,这会阻止Bannerlord.Harmony正常运行。
  • 如果Fixed Launcher已被卸载或从未安装,请检查游戏主/bin文件夹(《骑马与砍杀II:霸主》)中是否不存在以下文件 Bannerlord\bin\Win64_Shipping_Client)
  • TaleWorlds.MountAndBlade.Launcher.exe.config
  • 0Harmony.dll
  • LauncherPatcher.dll
  • LauncherPatcher.pdb 关于 Harmony为您提供了一种优雅且高级的方式来修改用C#编写的应用程序功能。
    它在游戏中表现卓越,并已在多款知名游戏中得到广泛应用,例如:
    《七日杀》
    《BattleTech》
    《围攻》
    《城市:天际线》
    《坎巴拉太空计划》
    《缺氧》
    《Ravenfield》
    《边缘世界》
    《庇护所》
    《星露谷物语》
    《Staxel》
    《深海迷航》
    《终极极客游戏》
    《Total Miner》
    《Unturned》
    以及许多其他游戏。 它还用于WFP控件的单元测试以及许多其他领域。 它是如何运作的 如果你使用C#开发,并且你的代码作为模块/插件加载到宿主应用程序中,你可以使用Harmony来修改该应用程序所有可用程序集的功能。其他补丁库仅允许你替换原始方法,而Harmony更进一步,为你提供: • 一种保持原始方法完整性的方式 • 在原始方法之前和/或之后执行你的代码 • 使用IL代码处理器修改原始内容 • 多个 Harmony 补丁共存且互不冲突 • 在运行时工作,不修改任何文件 文档 请查阅文档。 贡献 pardeike 在这个项目及其支持上投入了数千小时。所以每一个小小的行动都有帮助: • 为这个stackoverflow回答点赞 • 在你的开发者社区中传播这个消息 • 成为 GitHub 赞助者或 Patreon 会员 本项目使用了由0x0ade开发的优秀MonoMod.Common库。