![]() |
VOOZH | about |
dotnet add package Lib.Harmony.Thin --version 2.4.2
NuGet\Install-Package Lib.Harmony.Thin -Version 2.4.2
<PackageReference Include="Lib.Harmony.Thin" Version="2.4.2" />
<PackageVersion Include="Lib.Harmony.Thin" Version="2.4.2" />Directory.Packages.props
<PackageReference Include="Lib.Harmony.Thin" />Project file
paket add Lib.Harmony.Thin --version 2.4.2
#r "nuget: Lib.Harmony.Thin, 2.4.2"
#:package Lib.Harmony.Thin@2.4.2
#addin nuget:?package=Lib.Harmony.Thin&version=2.4.2Install as a Cake Addin
#tool nuget:?package=Lib.Harmony.Thin&version=2.4.2Install as a Cake Tool
<p align="center"> <img src="https://raw.githubusercontent.com/pardeike/Harmony/master/HarmonyLogo.png" alt="Harmony" width="180" /><br> <b>Version 2.4</b><br> A library for patching, replacing and decorating<br> .NET and Mono methods during runtime. </p>
Harmony gives you an elegant and high level way to alter the functionality in applications written in C#. It works great in games and is well established in titles like
• Rust • Rimworld • 7 Days To Die • Stardew Valley • Subnautica • Oxygen Not Included • Besiege • Cities:Skylines • Kerbal Space Program • Resonite • BattleTech • Slime Rancher
and others like Ravenfield, Sheltered, Staxel, The Ultimate Nerd Game, Total Miner, Unturned, SCP: Secret Laboratory ...
It is also used in unit testing WPF controls at Microsoft and Google and in many other areas.
If you develop in C# and your code is loaded as a module/plugin into a host application, you can use Harmony to alter the functionality of all the available assemblies of that application. Where other patch libraries simply allow you to replace the original method, Harmony goes one step further and gives you:
• A way to keep the original method intact • Execute your code before and/or after the original method • Modify the original with IL code processors • Multiple Harmony patches co-exist and don't conflict with each other • Works at runtime and does not touch any files
If you want a single file, dependency-merged assembly, you should use the Lib.Harmony nuget package. This is the preferred way.
If you instead want to supply the dependencies yourself, you should use the Lib.Harmony.Thin nuget package. You get more control but you are responsible to make all references available at runtime.
Please check out the documentation and join the official discord server.
I put thousands of hours into this project and its support. So every little action helps:
• Become a GitHub sponsor or a Patreon • Upvote this stackoverflow answer • Spread the word in your developer communities
This project uses the great MonoMod.Core library by 0x0ade and nike4613.
Harmony 1 is deprecated and not under active development anymore. The latest version of it (v1.2.0.1) is stable and contains only minor bugs. Keep using it if you are in an environment that exclusively uses Harmony 1. Currently Harmony 1.x and 2.x are NOT COMPATIBLE with each other and SHOULD NOT BE MIXED. The old documentation can still be found at the Wiki.
<br>
<p align="center"> <a href="../../blob/master/LICENSE"><img src="https://img.shields.io/github/license/pardeike/harmony.svg?style=flat-squared&label=License" /></a> <a href="../../releases/latest"><img src="https://img.shields.io/github/release/pardeike/harmony.svg?style=flat-squared&label=Release" /></a> <a href="https://harmony.pardeike.net"><img src="https://img.shields.io/badge/documentation-%F0%9F%94%8D-9cf?style=flat-squared&label=Documentation" /></a> </p> <p align="center"> <a href="https://github.com/pardeike/Harmony/releases/latest"><img src="https://img.shields.io/github/downloads/pardeike/Harmony/total.svg?style=flat-squared&logo=github&color=009900&label=Release%20Downloads" /></a> <a href="https://www.nuget.org/packages/Lib.Harmony"><img src="https://img.shields.io/nuget/dt/Lib.Harmony?style=flat-squared&logo=nuget&label=Nuget%20Downloads&color=009900" /></a> </p> <p align="center"> <a href="https://github.com/pardeike/Harmony/actions/workflows/test.yml"><img src="https://img.shields.io/github/actions/workflow/status/pardeike/Harmony/test.yml?style=flat-squared&logo=github&label=CI%20Tests" /></a> <a href="https://discord.gg/xXgghXR"><img src="https://img.shields.io/discord/131466550938042369.svg?style=flat-squared&logo=discord&label=Official%20Discord" /></a> </p> <p align="center"> <a href="mailto:andreas@pardeike.net"><img src="https://img.shields.io/badge/email-andreas@pardeike.net-blue.svg?style=flat-squared&label=Email" /></a> <a href="https://twitter.com/pardeike"><img src="https://img.shields.io/badge/twitter-@pardeike-blue.svg?style=flat-squared&logo=twitter&label=Twitter" /></a> </p>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 is compatible. net5.0-windows net5.0-windows was computed. net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 is compatible. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 is compatible. netcoreapp3.1 netcoreapp3.1 is compatible. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 was computed. |
| .NET Framework | net35 net35 is compatible. net40 net40 was computed. net403 net403 was computed. net45 net45 was computed. net451 net451 was computed. net452 net452 is compatible. net46 net46 was computed. net461 net461 was computed. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 is compatible. net48 net48 is compatible. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 5 NuGet packages that depend on Lib.Harmony.Thin:
| Package | Downloads |
|---|---|
|
Xpand.Extensions
Xpand.Extensions |
|
|
Xpand.XAF.Modules.Reactive
The `Reactive` module provides a XAF DSL API for functional/stateless implementations. |
|
|
Xpand.Extensions.XAF
Xpand.Extensions.XAF |
|
|
Xpand.XAF.Modules.ModelViewInheritance
The `ModuleViewInheritance` changes the default Model View generation without coding. |
|
|
Xpand.XAF.Modules.Reactive.Logger
The `Reactive.Logger` module monitors calls to the RX delegates OnNext, OnSubscribe, OnDispose, OnCompleted, OnError |
Showing the top 2 popular GitHub repositories that depend on Lib.Harmony.Thin:
| Repository | Stars |
|---|---|
|
ClassIsland/ClassIsland
一款功能强、可定制、跨平台,适用于班级多媒体屏幕的课表信息显示工具,可以一目了然地显示各种信息。
|
|
|
openmod/openmod
OpenMod .NET Plugin Framework
|