Господа эксперты, подскажите как сделать атомарное обновление моего софта на

кутях в винде ? т.е. я хочу сделать так чтобы софтина скачивала с моего сервера обновлений новую версию (.msi) а дальше надо как-то её установить так чтобы гарантировано либо новая версия уже была либо старая. Да ещё и в винде как известно программу нельзя удалить/заменить если она в данный момент работает. Гарантировано - в смысле что если юзер внезапно выдернет шнур из розетки в самый неподходящий момент.

18 ответов

32 просмотра

Ваш софт запускает некий обновлятор, который уже всё и делает.

Mark ☢️-Korenberg Автор вопроса
Mark ☢️ Korenberg
ну ок. а что насчёт атомарности?

Это решает не Qt, а создатель инсталятора. К примеру, NSIS.

Mark ☢️-Korenberg Автор вопроса
Михаил Серебренников
Это решает не Qt, а создатель инсталятора. К приме...

Да это понятно. Просто тут спрашиваю, вдруг кто в этой теме

программу работающую можно переименовать, запихать с оригинальным названием новый файл, при перезагрузке почистить я в своей либе по обновлению софта именно так и сделал но у меня обновление происходит либо с ftp, либо c файл-сервера, либо с gitlab можно конечно реализаций напихать еще, интерфейс тот же останется, но мне лень. Для моих задач вообще гитлаба достаточно.

Mark ☢️-Korenberg Автор вопроса
Angry Subst
программу работающую можно переименовать, запихать...

Ок, за наводку с переименованием спасибо. У меня ещё всё веселее. Основной алгоритм — должна быть служба с правами систем. и к ней отдельной программаой гуй который работает под юзером. И да, не просто программа скачиваться должна, .msi. Там же подписи и всё такое

Mark ☢️ Korenberg
Ок, за наводку с переименованием спасибо. У меня ...

https://gitlab.com/Subst/appupdater/ если интересно, слей посмотри кажется этот проект паблик должна быть, если нет скажи, поправлю

Mark ☢️ Korenberg
доступ есть

лень двигатель прогресса.. это у меня пара программ моих на моей же поддержке работают мне стало сначала лень к ним ездить, а потом даже удаленно заходить к ним. Кинул в гит обновленную версию, кинул в телегу в группу мессагу, чтобы жмакнули кнопку...

Mark ☢️ Korenberg
боль-дривен девелопмент

не слышал такого выражения шо сей значит?

На работе ковырял один легаси проект, там были две программы, одна из них минипрограмма, которая запускала основную. Если основная падала, то перезапускала через 10 секунд. Эта же минипрограмма обновляла основную. Минипрограмма запускалась с правами system. Вот с этими правами есть проблемы. Мне надо было с основной программы запускать bat скрипты и например выполнять очистку всякого, так все скрипты тоже запускались от system и из-за этого не получалось очистить корзину юзера. Все это было на win XP. К сожалению доступа к этому проекту нету.

Mark ☢️-Korenberg Автор вопроса
Angry Subst
не слышал такого выражения шо сей значит?

Когда что-то запиливается действительно быстро и качественно только тогда когда пригорело и уже достало настолько что засучиваешь рукава и просто берешь и делаешь

Mark ☢️ Korenberg
Когда что-то запиливается действительно быстро и к...

а... ну там несколько иная ситуевина. Это один из ВУЗов, у них вводные от министерства меняются со скоростью света. Это первое. Напрямую программ не касается, но касается форм отчетов и т.п. Второе - программы уже лет 5 в работе/разработке. Я время от времени новые фичи добавляю для облегчения работы и рефакторю.

Mark ☢️ Korenberg
Ок, за наводку с переименованием спасибо. У меня ...

Если не секрет, в какой сфере работаете? У нас сейчас продукт абсолютно аналогичной архитектуры)))

Mark ☢️-Korenberg Автор вопроса
Dmitriy [Отпуск]
Если не секрет, в какой сфере работаете? У нас се...

Хах. Я работаю в компании Айдеко. Мы делаем продукты для информационной безопасности. Ну а архитектура как-бы не мудрёная. просто Л - логика.

Mark ☢️ Korenberg
Хах. Я работаю в компании Айдеко. Мы делаем продук...

А, тоже инфбез... Вообще согласен, но кроссплатформенное ПО с такой архитектурой встречается относительно редко

Mark ☢️-Korenberg Автор вопроса
Dmitriy [Отпуск]
А, тоже инфбез... Вообще согласен, но кроссплатфо...

о_О. а ты где работаешь ? можно в личку если НДА

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта