Harmony

DevWiki
둘러보기로 이동 검색으로 이동

About

Harmony는 C#으로 작성된 애플리케이션의 기능을 변경하는 우아하고 높은 수준의 방법을 제공합니다. 게임에서 훌륭하게 작동하며 7 Days To Die, BattleTech, Besiege, Cities:Skylines, Kerbal Space Program, Oxygen Not 포함, Ravenfield, Rimworld, Sheltered, Stardew Valley, Staxel, Subnautica, The Ultimate Nerd Game과 같은 타이틀에서 잘 확립되었습니다. , Total Miner, Unturned, SCP: Secret Laboratory 등이 있습니다.

또한 WPF 컨트롤의 단위 테스트 및 기타 여러 영역에서도 사용됩니다.

작동 원리

C#으로 개발하고 코드가 호스트 애플리케이션에 모듈/플러그인으로 로드되는 경우 Harmony를 사용하여 해당 애플리케이션에서 사용 가능한 모든 어셈블리의 기능을 변경할 수 있습니다. 다른 패치 라이브러리를 사용하면 원래 방법을 간단히 대체할 수 있지만 Harmony는 한 단계 더 나아가 다음과 같은 기능을 제공합니다.

• 원래의 방법을 그대로 유지하는 방법

• 원래 메소드 이전 및/또는 이후에 코드를 실행합니다.

• IL 코드 프로세서로 원본 수정

• 여러 Harmony 패치가 공존하며 서로 충돌하지 않습니다.

• 런타임에 작동하며 어떤 파일도 건드리지 않습니다.

설치

단일 파일, 종속성 병합 어셈블리를 원하는 경우 Lib.Harmony nuget 패키지를 사용해야 합니다. 이것이 선호되는 방법입니다.

대신 종속성을 직접 제공하려면 Lib.Harmony.Thin nuget 패키지를 사용해야 합니다. 더 많은 제어권을 가지지만 런타임에 모든 참조를 사용할 수 있도록 하는 책임은 귀하에게 있습니다.

다운로드

https://github.com/pardeike/Harmony