protected override void ActExecution() { string restartFolderPath = Path.Combine(MainSettings.LocalSqlSettings.SelfUpdatePath, MainSettings.Constants.MU_RESTART_FOLDER_NAME); FilesWorks.ClearDirectory(MainSettings.LocalSqlSettings.SelfUpdatePath); Directory.CreateDirectory(MainSettings.LocalSqlSettings.SelfUpdatePath); Directory.CreateDirectory(restartFolderPath); var resRestart = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer , MainSettings.LocalSqlSettings.SelfUpdateFtpUser , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword , Path.Combine(MainSettings.LocalSqlSettings.SelfUpdateFtpPath, MainSettings.Constants.MU_RESTART_FOLDER_NAME) , restartFolderPath , "*"); if (!resRestart.IsComplete) { throw new Exception($"Restart part: {resRestart.Message}"); } var resAgent = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer , MainSettings.LocalSqlSettings.SelfUpdateFtpUser , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword , MainSettings.LocalSqlSettings.SelfUpdateFtpPath , MainSettings.LocalSqlSettings.SelfUpdatePath , "*"); if (!resAgent.IsComplete) { throw new Exception($"Agent part: {resAgent.Message}"); } }
private void InstallBase() { Directory.CreateDirectory(_magicUpdaterPath); Program.MainForm?.LogInstallServiceString($"Копирование файла {MainSettings.Constants.SETTINGS_JSON_FILE_NAME}."); if (File.Exists(Path.Combine(_magicUpdaterPath, MainSettings.Constants.SETTINGS_JSON_FILE_NAME))) { File.Delete(Path.Combine(_magicUpdaterPath, MainSettings.Constants.SETTINGS_JSON_FILE_NAME)); } File.Copy(MainSettings.JsonSettingsFileFullPath, Path.Combine(_magicUpdaterPath, MainSettings.Constants.SETTINGS_JSON_FILE_NAME)); Program.MainForm?.LogInstallServiceString($"Копирование файла {MainSettings.Constants.SETTINGS_JSON_FILE_NAME} успешно завершено."); Thread.Sleep(1000); Program.MainForm?.LogInstallServiceString("Скачиваем новую версию приложения для перезапуска для агента"); //Копируем новый MagicUpdater целиком! #region Копируем новый MagicUpdater целиком! Directory.CreateDirectory(_magicUpdaterPath); //Restart applivation var resReatartApp = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer , MainSettings.LocalSqlSettings.SelfUpdateFtpUser , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword , Path.Combine(MainSettings.LocalSqlSettings.SelfUpdateFtpPath, MainSettings.Constants.MU_RESTART_FOLDER_NAME) , Path.Combine(_magicUpdaterPath, MainSettings.Constants.MU_RESTART_FOLDER_NAME) , "*"); if (!resReatartApp.IsComplete) { throw new Exception(resReatartApp.Message); } else { Program.MainForm?.LogInstallServiceString($"Закачка нового {MainSettings.Constants.MAGIC_UPDATER_RESTART} - завешена"); AddMessage($"Закачка нового {MainSettings.Constants.MAGIC_UPDATER_RESTART} - завешена"); } //Agent Program.MainForm?.LogInstallServiceString("Скачиваем новую версию агента"); var resAgent = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer , MainSettings.LocalSqlSettings.SelfUpdateFtpUser , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword , MainSettings.LocalSqlSettings.SelfUpdateFtpPath , _magicUpdaterPath , "*"); if (!resAgent.IsComplete) { throw new Exception(resAgent.Message); } else { Program.MainForm?.LogInstallServiceString($"Закачка нового {SERVICE_NAME} - завешена"); AddMessage($"Закачка нового {SERVICE_NAME} - завешена"); } #endregion Копируем новый MagicUpdater целиком! //Устанавливаем службу с режимом автозапуска //Запускаем службу Thread.Sleep(3000); try { Program.MainForm?.LogInstallServiceString($"Установка новой службы {SERVICE_NAME}"); InstallService(_servicePath, SERVICE_NAME, SERVICE_DISPLAY_NAME); Program.MainForm?.LogInstallServiceString($"Новая служба {SERVICE_NAME} - установлена и запущена"); AddMessage($"Новая служба {SERVICE_NAME} - установлена и запущена"); //для отложенного запуска Thread.Sleep(3000); //Меняем режим запуска на отложенный Process changeProcess = Process.Start("sc.exe", $"config {SERVICE_NAME} start= delayed-auto"); changeProcess.WaitForExit(10000); Program.MainForm?.LogInstallServiceString($"Для службы {SERVICE_NAME} - установлен отложенный запуск."); //sc.exe config MagicUpdater start= delayed-auto } catch (Exception ex) { throw; } }