Release v2.10.0
Changelog
-
Merged code from upstream up to 6006140 (see Harmony changelog)
-
Important: The merge brings binary incompatibilities to
CodeMatch
class. If you distribute HarmonyX in games or mod loaders, please test for any regressions and apply shims where appropriateStarting this version,
CodeMatch
now inheritsCodeInstruction
. Because of this, some fields (labels, blocks) have been removed fromCodeMatch
as they are now provided byCodeInstructon
. AnyCodeMatch
uses where fields are accessed directly will be binary-incompatible. However, this should generally be fairly rare: analysing a few dozenCodeMatch
class uses across different GitHub projects revealed that most developers only use thenew CodeMatch
constructor, which hasn't been altered. Most use cases ofCodeMatch
should still be binary-compatible with HarmonyX 2.10. -
All nested classes in the
Code
class have also been annotated with the[EditorBrowsable(EditorBrowsableState.Never)]
attribute to prevent custom classes from cluttering most IDEs' code completion.
-
-
Fix
HARMONY_NO_LOG
environment variable is not respected for file logger -
Fix
HarmonyEmitIL
attribute not working on methods with certain branches -
Fix handling methods that include
throws
OpCode on mono -
Fix net35 builds not working on CoreCLR because of
AccessTools.PrepForRemoting
fix -
Improve exception messages when applying patches (warn about missing target method or patch method not being static)
-
Bump MonoMod version to 22.3.23.4 (changelog)