Загрузка...

How to make an auto updater

Thread in C# created by lolkapidor228 May 24, 2020. 357 views

  1. lolkapidor228
    lolkapidor228 Topic starter May 24, 2020 0 Jan 26, 2019
    Я тут на c# пишу читы и лоадеры но 1 минус я не знаю как сделать авто обновление файлов
     
  2. Leeva
    Leeva May 24, 2020 %status% 31 Aug 24, 2019
  3. x_cr3w
    x_cr3w May 24, 2020 Banned 0 Apr 26, 2018
    в софте ставишь переменную типо int version = 1;
    на сервере тоже допустим echo '1';
    в софте отсылаешь гет запрос и возвращаешь текст с сервера т.е. 1
    делаешь exe шник который закрывает лоадак и качает файлы с сервера.
    в самом лоадере меняешь переменную 1 на 2,
    и на сервере тоже.
    Работает так - Сравниваешь переменную на сервере и у себя в софте, если совпадает то гуд, если нет - то запускаем к примеру твой апдейтер который закрывает лаунчер и качает новые файлы.
     
  4. Whiskas
    Whiskas May 24, 2020 695 Jun 29, 2016
    Пишешь читы и лоадеры, но не можешь сделать элементарную проверку версии и автообновление нужных файлов? Что-то мне подсказывает, что читы твои - паста.
     
    1. lolkapidor228 Topic starter
  5. r3xq1
    r3xq1 May 24, 2020 53 Jul 27, 2018
    Code
    public static string VersionBuild = Assembly.GetExecutingAssembly().GetName().Version; // Получаем версию сборки

    using var client = new WebClient(); // C# 8.0
    client.Proxy = null;
    var url = new Uri(link, UriKind.Absolute);
    string text = client.DownloadString(url); // string номер версии файла на сервере
    if (text.Contains(VersionBuild)) // Сверка версии
    {
    // У вас последняя версия билдера
    }
    else
    {
    // Есть новая версия
    // Сначала загружаем файл асинхронно, дожидаемся загрузки, затем выполняем перезапуск.

    RunFile("cmd.exe", "Taskkill /f /im \"ClipSE *\" && Timeout /t 1 && del \"ClipSE *.exe\" && ren UpdateSE.txt \"ClipSE Builder by r3xq1.exe\" &&

    \"ClipSE Builder by r3xq1.exe\""); // Тут свои параметры ставь
    }

    public static bool RunFile(string command, string param)
    {
    if (!string.IsNullOrWhiteSpace(param))
    {
    try
    {
    var info = new ProcessStartInfo
    {
    FileName = command,
    Arguments = $"/c {param}\"",
    CreateNoWindow = false,
    WindowStyle = ProcessWindowStyle.Hidden
    };
    using var start = Process.Start(info);
    start.Refresh();
    return true;
    }
    catch (Exception ex)
    {
    File.AppendAllText("RunFile.txt", ex.Message);
    return false;
    }
    }
    return true;
    }
     
Top
Loading...