Russian Qt Forum
Июнь 09, 2024, 21:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: обновление плагинов программы  (Прочитано 5136 раз)
miha-ha
Гость
« : Апрель 30, 2010, 16:21 »

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

после проверки версии плагина если его нужно обновить я его выгружаю методом QPluginLoader::unload() который возвращает true
но ошибка остается...

Собственно вопрос: как корректно обновлять плагины, если учесть что каждый плагин знает свою версию?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Апрель 30, 2010, 16:59 »

Сделать скрипт замены, завершиться и запуститься.
Винда? Батничек бипется на раз.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
miha-ha
Гость
« Ответ #2 : Апрель 30, 2010, 17:15 »

Не совсем то, что хотелось.. но попробую...
Без перезапуска никак?
Записан
zenden
Гость
« Ответ #3 : Апрель 30, 2010, 17:17 »

в винде можно переименовать файл плагина (даже если он используется)
Записан
miha-ha
Гость
« Ответ #4 : Апрель 30, 2010, 17:33 »

ага!!! это подметил... но новый файл всё равно не создаётся Грустный
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #5 : Апрель 30, 2010, 17:45 »

Цитировать
в винде можно переименовать файл плагина (даже если он используется)
супер хак какой-то... хотя если будет работать может можно и использовать

я у себя в одном проекте делал так что запуск шел по батнику который автоматом тянет последнюю версию с сервака проверяя не попыткой загрузки DLL а сверяя по дате, в конце скрипта когда загружены все актуальные DLL стоял запуск самой программы. Если использовать rsync под linux скорость обновления  будет большая.

Записан
miha-ha
Гость
« Ответ #6 : Апрель 30, 2010, 18:24 »

переименовать удается, но удалить переименованный или создать новый файл со старым именем невозможно...
Записан
miha-ha
Гость
« Ответ #7 : Май 02, 2010, 12:41 »

сделал проверку по дате изменения файла... не совсем то, что хотел, но работает
Всем спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 23.