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

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

18 ответов

30 просмотров

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

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 [Отпуск]
А, тоже инфбез... Вообще согласен, но кроссплатфо...

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

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Доброе утро, мультиязычные сайты делал кто-нибудь? Какие подводные камни? Нужно чего нибудь допом ставить? Как поступить? В теории сделать две папки ru en и туда кидать страни...
Racoon Mitya
2
Карта сайта