Harmony 2.0 RC 5
Pre-releaseWe are getting close! This is the last feature release. Expect maximum one more RC for bug fixes but other than that, this is the real deal. ENJOY
Compatibility warning:
DO NOT MIX HARMONY 2 WITH OLDER HARMONY 1 VERSIONS
Changes since RC 4:
- New: Support for IL InlineSignature (patching methods with
CALLI
) - New: documentation can now be tested with dotnet tool
- New: documentation now uses compiled code snippets for correctness
- Update:
MonoMod.Common 20.2.2.1
- Fixed: Methods that result in dead code at the end can now be Prefixed (Mono issue only)
- Fixed: Outdated content in documentation
- Regression: injecting ___fields now works as before (considers base class fields again)
- Fixed: Handling
Ret
in replacement method is now smarter - Regression: Reverse patching - transpiled code must now end with valid
Ret
- Fixed: don't use Setup to run tests
- New: Selective debug log with
[HarmonyDebug]
annotation - works even with future changes of the method - New: Prepare/Cleanup will be called even with exceptions during patching
- New: Cleanup can now receive and return the current
Exception
during patching - Fixed: Removed
travic-ci.com
and only usetravis-ci.org
- Fixed: github main page now has correct CI badges with links
- New: If possible, an IL compile error will result in a new
HarmonyException
that contains the IL codes and the IL offset in a parseable format
Documentation
The documentation can be found at https://harmony.pardeike.net - feel free to file Issues for anything incorrect or for places that need more clarity or improvements.
Upgrading
The API has changed from Harmony 1.x to Harmony 2 so don't expect this to go without at least some renaming/refactoring. Shouldn't be hard though.
Help wanted
Please use [HarmonyDebug] to produce the debug log on your Desktop and compare the output to the original IL code of the method. Especially code offsets in methods with exception handling. Report any abnormalities.
Feedback
For bugs or suggestions, feel free to file Issues or join the official Discord.