コード例 #1
0
        static void Main(string[] args)
        {
            if (!File.Exists("Assembly-CSharp.dll"))
            {
                prefix = "Subnautica_Data/Managed/";
            }
            var csharpasm = AssemblyDefinition.ReadAssembly(prefix + "Assembly-CSharp.dll");

            if (!HarmonyPatcher.CheckIsPatched(csharpasm))
            {
                PatchAssembly(csharpasm);
                //AddTechTypesToEnum(csharpasm);
                csharpasm.Write(prefix + "Assembly-CSharp.dll.q");
                if (File.Exists(prefix + "Assembly-CSharp.original.dll"))
                {
                    File.Delete(prefix + "Assembly-CSharp.original.dll");
                }
                File.Move(prefix + "Assembly-CSharp.dll", prefix + "Assembly-CSharp.original.dll");
                File.Move(prefix + "Assembly-CSharp.dll.q", prefix + "Assembly-CSharp.dll");
            }
            Console.WriteLine("Patching Finished!");
            Console.WriteLine("Press Enter To Exit...");
            Console.ReadLine();
        }
コード例 #2
0
 public static void PatchAssembly(AssemblyDefinition assembly)
 {
     HarmonyPatcher.PatchIntoFile(assembly);
 }