Sobre el proyecto

Harmony es una biblioteca potente para .NET y Mono que permite a los desarrolladores alterar la funcionalidad de las aplicaciones en tiempo de ejecución sin modificar el código fuente o los archivos originales. Proporciona una API elegante y de alto nivel para parchear métodos, permitiendo que el código se ejecute antes, después o incluso reemplace el método original, así como modificar directamente el código IL del método. Esto lo hace ideal para crear mods para juegos, extender aplicaciones o agregar instrumentación para pruebas y depuración. La biblioteca está bien establecida en la comunidad de modding, con soporte para juegos populares como Rust, Rimworld, Stardew Valley y Cities: Skylines. También se utiliza en entornos profesionales, como en pruebas unitarias de controles WPF en Microsoft y Google. Harmony admite múltiples parches coexistiendo sin conflictos, garantizando estabilidad y flexibilidad. La instalación es sencilla a través de NuGet, con dos opciones de paquete: Lib.Harmony para un ensamblado de un solo archivo con dependencias fusionadas (preferido) y Lib.Harmony.Thin para aquellos que desean gestionar las dependencias ellos mismos. La documentación completa está disponible en harmony.pardeike.net, y un servidor oficial de Discord proporciona soporte comunitario. El proyecto se mantiene activamente, con Harmony 2.x en la rama master y el desarrollo de Harmony 3 (incluyendo parcheo Infix) en una rama separada. Harmony 1 está obsoleto y no es compatible con 2.x. La biblioteca aprovecha MonoMod.Core para sus capacidades subyacentes de manipulación de IL. Para desarrolladores que buscan extender o modificar aplicaciones .NET dinámicamente, Harmony ofrece una solución robusta y bien probada con una gran base de usuarios y contribuciones continuas.