|
44 / 45 / 15
Регистрация: 11.08.2010
Сообщений: 226
|
|
Автообновление программы10.11.2013, 02:21. Показов 6115. Ответов 31
Метки нет (Все метки)
Сделал апдейтер для программы, и сейчас вот дописываю поддержку обновления апдейтера. Проблема в финальной стадии, я не знаю как решить ее без стороннего простого приложения, которое при своем запуске поменять файлы местами и удалить некоторые из них. Сейчас я сделал так: в конце обновления новый файл именуется file_1.exe, далее запускается программа для замены файлов, а апдейтер закрывается. Программа для замены заменит file.exe на file_1.exe, и удалит последний. Вот как реализовать это без сторонней программы. В голову приходит только вынести функционал программы для замены в отдельный поток с задержкой, в майн потоке стартовать background поток, а саму программу закрывать.
0
|
|
| 10.11.2013, 02:21 | |
|
Ответы с готовыми решениями:
31
Автообновление Автообновление службы ( сервиса ) |
|
|
||
| 10.11.2013, 05:48 | ||
|
Да это нормальный вариант со сторонней программой.
0
|
||
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
|
| 10.11.2013, 05:51 | |
|
Я сделал все в одной программе. Она загружает обнову, скидывает на диск, запускает ее с параметрами, сама закрывается. Обнова же удаляет старый файл становится на его место
0
|
|
|
Master of Orion
|
|
| 10.11.2013, 11:51 | |
|
Villain512, без сторонней программы - выгружать программу куда-нибудь и запускать её копию. Например нужно обновиться, копируем (или переносим экзешник в другую папку, например в папку обновления), после этого запускаем его оттуда. При запуске программы если она видит, что лежит в папке Update(или папке temp, как угодно), то вместо обычной работы начинает работу по перекопированию из папки Update всех файлов. Но все же лучше кидать прогу в temp под каким-нибудь рандомным именем. После этого папка Update удаляется и все. Другой вариант - если Update заменяет в том числе экзешник, то просто жамкаем на него и указываем путь к программе, он выполняет пункт №2 (то есть копирует все файлы, включая себя). А ваше намного проще делать так:
Обновление - это просто обычный установщик. Программа скачивает установщик, запускает его, указывая путь к себе, а сама в этот момент зарывается. Юзер кликает "далее->далее->готово". Установщик заменяет нужные файлы. ??????? PROFIT!
0
|
|
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
||
| 10.11.2013, 11:56 | ||
Написал класс который все это автоматом делает, в мейне к примеру его вызываем, передаем аргументы и все, Правда от всех этих операций антивирусы начинают ругаться частенько, думают что червь.
0
|
||
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
|
| 10.11.2013, 12:06 | |
|
Да ну зачем, для меня это неудобно. Мне надо чтоб все на лету происходило, сам не люблю эти установщики и своим клиентам делать не стану
![]() Добавлено через 4 минуты Наличие установщика должно быть оправдано, бесит же когда какая-нибудь маленькая программа, с 3-5 файлами корчит из себя серьезный софт и требует чтоб ее установили, вместо того чтобы просто запустить с рабочего стола или еще откуда когда надо, и быстро удалить когда перестала быть нужна . А если программа большая или с интеграцией типа вижуал студио и тд и тп, то да только в этом случае нужны установщики.
0
|
|
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
|
| 10.11.2013, 12:23 | |
|
А отдельный то зачем, если всего то достаточно вызывать метод из мейна?
0
|
|
|
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
|
|
| 10.11.2013, 12:32 | |
|
Villain512, тогда скачивай WebClient'ом новую версию, удаляй ехешник старой программы, заменяй скачанным, открывай новый ехешник каким-нибудь Process.Start, закрывай себя и будет щастье. можно прям одной функцией сделать.
0
|
|
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
|
| 10.11.2013, 12:35 | |
|
Да вы не мне помогайте а ТС, я все уже давным давно сделал и отладил
0
|
|
|
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
|
|
| 10.11.2013, 12:37 | |
|
если в программе много файлов, пихай их на сервере обновлений в архив, скачивай архив, распаковывай каким нибудь DotNetZipLib и перетаскивай на место старых в папку с программой.
я так думаю. Добавлено через 28 секунд Villain512, хех, не заметил, бывает).
0
|
|
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
||
| 10.11.2013, 12:40 | ||
0
|
||
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
||
| 10.11.2013, 12:55 | ||
0
|
||
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
||||||
| 10.11.2013, 13:09 | ||||||
1
|
||||||
|
2 / 2 / 1
Регистрация: 19.01.2013
Сообщений: 155
|
|
| 10.11.2013, 13:33 | |
|
Смысле? у меня пашет все. Может отладчик мешает?
0
|
|
|
Master of Orion
|
|
| 10.11.2013, 13:49 | |
|
0
|
|
| 10.11.2013, 13:49 | |
|
Помогаю со студенческими работами здесь
20
Автообновление
Автообновление DataGridView Автообновление данных в Grid Некорректное автообновление datagrid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|