S_007 Опубликовано 1 марта, 2018 Поделиться Опубликовано 1 марта, 2018 Как сделать чтоб при обновлении приложения через USB кабель, переустанавливалось только само приложение а файл базы который был установлен по пути .\assets\internal\ с первой установкой оставался не тронутым? Цитата Ссылка на комментарий
0 DMS Опубликовано 1 марта, 2018 Поделиться Опубликовано 1 марта, 2018 16 минут назад, S_007 сказал: Как сделать чтоб при обновлении приложения через USB кабель, переустанавливалось только само приложение а файл базы который был установлен по пути .\assets\internal\ с первой установкой оставался не тронутым? Как раз не обновляется то, что было в deployment-е. Для многих это головная боль) S_007 1 Цитата Ссылка на комментарий
0 sinuke Опубликовано 1 марта, 2018 Поделиться Опубликовано 1 марта, 2018 37 минут назад, S_007 сказал: Как сделать чтоб при обновлении приложения через USB кабель, переустанавливалось только само приложение а файл базы который был установлен по пути .\assets\internal\ с первой установкой оставался не тронутым? ну я бы сделал так: поместил нужный файл в ресурсы (при этом в деплойменте галочку рядом с этим файлом убрал). при первом запуске проверял бы - если файл отсутсвует, то копируем из ресурсов в нужное место. а если файл уже присутствует, то ничего не делаем S_007 и FREEFAR 2 Цитата Ссылка на комментарий
0 S_007 Опубликовано 1 марта, 2018 Автор Поделиться Опубликовано 1 марта, 2018 (изменено) Спасибо! Очень понравился Ваш вариант sinuke, только бы реализацию такого подхода для андроид найти бы еще Изменено 1 марта, 2018 пользователем S_007 Цитата Ссылка на комментарий
2 sinuke Опубликовано 1 марта, 2018 Поделиться Опубликовано 1 марта, 2018 (изменено) Ну можно примерно так (не делал проверку на исключения) procedure TForm1.FormShow(Sender: TObject); var LRes: TResourceStream; LFileName: string; begin LFileName := TPath.Combine(TPath.GetDocumentsPath, '1.txt'); if not TFile.Exists(LFileName) then begin LRes := TResourceStream.Create(HInstance, 'SOMEFILE', RT_RCDATA); try LRes.SaveToFile(LFileName); finally FreeAndNil(LRes); ShowMessage('Файл скопирован из ресурсов'); end; end else ShowMessage('Файл уже существует'); end; 1.txt - имя вашего файла TPath.GetDocumentsPath - возвращает путь как раз к папке \assets\internal SOMEFILE - имя ресурса, который добавлен в проект. При этом после добавления файла в ресурсы обязательно нужно зайти в Deployment и убрать галочку с добавленного файла (при добавлении в ресурсы файл автоматически добавляется в деплоймент) Вот тестовый проектик. Делал правда в Starter-версии, поэтому Android не доступен. Но принцип ничем не отличается ResFile.zip Изменено 1 марта, 2018 пользователем sinuke S_007 и Ingalime 1 1 Цитата Ссылка на комментарий
0 S_007 Опубликовано 1 марта, 2018 Автор Поделиться Опубликовано 1 марта, 2018 sinuke гигантское Спасибо!!! Цитата Ссылка на комментарий
0 mazayhin Опубликовано 1 марта, 2018 Поделиться Опубликовано 1 марта, 2018 Сколько уже разжевывали, что не заменяются ресурсы из деплоя.. ivyl 1 Цитата Ссылка на комментарий
Вопрос
S_007
Как сделать чтоб при обновлении приложения через USB кабель, переустанавливалось только само приложение а файл базы который был установлен по пути .\assets\internal\ с первой установкой оставался не тронутым?
Ссылка на комментарий
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.