public void SaveRegistryChanges() { SetupRegistryHive.UnloadHive(true); if (IsTargetContainsTemporaryInstallation) { FileSystemUtils.ClearReadOnlyAttribute(BootDirectory + SetupRegistryHiveFile.FileName); try { ProgramUtils.CopyCriticalFile(SetupDirectory + SetupRegistryHiveFile.FileName, BootDirectory + SetupRegistryHiveFile.FileName); } catch { Console.WriteLine("Error: failed to copy '{0}' to '{1}' (setup boot folder)", SetupRegistryHiveFile.FileName, BootDirectory); Program.Exit(); } } }