コード例 #1
0
        public static void Patch(string outputPath, string assemblyDirectory, bool disableGrm, PackageStatusContext context)
        {
            var localDomain = AppDomain.CreateDomain("LocalDomain");

            var sdvPath = Path.Combine(InstallationContext.StardewPath, "Stardew Valley.exe");

            context.SetState(60, "Creating First Pass Patcher");
            var patcher = CreatePatcher(StardewPatcherPass.PassOne, assemblyDirectory, localDomain);

            context.SetState(65, "Loading Common Assemblies");
            patcher.LoadCommon(assemblyDirectory);
            patcher.SetOptions(assemblyDirectory, disableGrm);
            context.SetState(70, "Patching Intermediate Executable");
            patcher.Patch(sdvPath);

            context.SetState(75, "Creating Second Pass Patcher");
            patcher = CreatePatcher(StardewPatcherPass.PassTwo, assemblyDirectory, localDomain);
            patcher.LoadCommon(assemblyDirectory);
            patcher.SetOptions(assemblyDirectory, disableGrm);
            context.SetState(80, "Patching Final Executable");
            patcher.Patch(outputPath);

            AppDomain.Unload(localDomain);
        }