Название: Распространение на Windows. Прошу практических советов... Отправлено: 0x0001 от Январь 20, 2013, 14:19 установил Qt5, "перекладывая" проекты с 4.8.2 на 5, решил таки прийти к динамической линкове, ибо иначе невозможно, все те извращения которые совершал в 4.8.2 уже не проходят(на 4.8.2 Собирал даже Declarative плагины с QML файлами в ресурсах exe, со 100% отсутствием зависимостей на голый "XP ", причем SP1 и без MVS)... да и Времени жалко...
В общем Вопрос практический, Как кто развертывает приложение, какими инсталляторами пользуетесь, как "профиксить" пути к Qtшным dll? как запускается исполняемый файл? Ведь dll-ки надо еще найти и подгрузить и выдать Ошибку если some плагин,dll и пр. не найден! причем НЕ Win message типа "dll not found" или еще хуже;))) , а с рекомендациями Пользователю, что и как искать куда звонить, на какой сайт выходить и пр. для помощи. (Напомню задачу - от голого XP SP1 первого выпуска до Win7 - 64 с опцией "контроль учетных записей" в max security и USER правами... напомню такие права в Win7 позволяют лишь доступ к User Data / User App Data директориям на full доступ, т.е. никакое копирование в системные папки и пр невозможно, кроме папок текущего User) Объем "инсталлятора" должне быть не более 15..17Mb (собственно такой объем обеспечивала моя static линковка в 1 exe файл... в архиве конечно... ) Спасибо" Название: Re: Распространение на Windows. Прошу практических советов... Отправлено: Kurles от Январь 20, 2013, 14:38 Инсталятор - uNSIS (http://code.google.com/p/unsis/), уникод версия инсталятора от Nullsoft, по поводу "проверить dll" - кроме как написание лончера, котроый не зависит от Qt библиотек, и который перед запуском приложения проверяет все dll'ки по их hash коду решения не вижу (но это не значит, что его нет :) ).
Название: Re: Распространение на Windows. Прошу практических советов... Отправлено: 0x0001 от Январь 20, 2013, 15:59 Инсталятор - uNSIS (http://code.google.com/p/unsis/), уникод версия инсталятора от Nullsoft, по поводу "проверить dll" - кроме как написание лончера, котроый не зависит от Qt библиотек, и который перед запуском приложения проверяет все dll'ки по их hash коду решения не вижу (но это не значит, что его нет :) ). Спасибо, по поводу "проверки целостности dll" и прочих плагинов, у меня идея написать на "чистом" win API что-то вроде shell, который уже затем запускает основное приложение Qt и выгружается... ну или выдает конкретную осмысленную информацию пользователю "что не так" и выходит что важно БЕЗ критических, Категорически раздражающих Уважаемого, всегда Правого Клиента, ошибок windows... ;))НО прежде, конечно хотелось узнать , возможно такой инсталлятор есть уже готовый, с такой проверкой .. Название: Re: Распространение на Windows. Прошу практических советов... Отправлено: Alex Custov от Январь 21, 2013, 16:51 какими инсталляторами пользуетесь Стандартно - INNO Setup. Поначалу может не понравится то, что это просто скрипт, а не визуальный редактор. как "профиксить" пути к Qtшным dll? Это не нужно для конечного приложения как запускается исполняемый файл? в каком смысле? Обычно. Ведь dll-ки надо еще найти и подгрузить и выдать Ошибку если some плагин,dll и пр. не найден! Плагины грузятся внутри Qt, их наличие ты должен контролировать сам во время сборки инсталлятора. (Напомню задачу - от голого XP SP1 первого выпуска до Win7 - 64 с опцией "контроль учетных записей" в max security и USER правами... Если программа - не говнокод, то она нативно будет работать везде от Win XP 32-bit до Win 7 64-bit. Единственное, что если делать всё правильно, то придётся куда-то ставить вторую систему 64-битную, чтобы компилировать на ней нативные 64-битные бинарники и делать 64-bit инсталлятор. Иначе прога тоже будет работать, но в режиме эмуляции с WOW64 напомню такие права в Win7 позволяют лишь доступ к User Data / User App Data директориям на full доступ, т.е. никакое копирование в системные папки и пр невозможно, кроме папок текущего User) Строго говоря - возможно, Win7 перехватывает запись в системные каталоги неавторизованными процессами и перенаправляет их во временные каталоги, куда есть запись. Не помню как называется эта хрень. Объем "инсталлятора" должне быть не более 15..17Mb (собственно такой объем обеспечивала моя static линковка в 1 exe файл... в архиве конечно... ) INNO Setup и опции Compression=lzma и SolidCompression=yes. Если программа не использует много классов из Qt GUI, то я рекомендую сделать свою сборку Qt с использованием qconfig (http://barrel-of-herring.blogspot.com/2012/09/qt-482483-windows.html), это может сэкономить до нескольких мегабайт. Также используй UPX для своей программы и для Qt библиотек, но помни, что этим ты платишь за скорость запуска, если она тебе важна. Наиболее сильно на скорость запуска влияет UPX-нутый QtGui. Название: Re: Распространение на Windows. Прошу практических советов... Отправлено: LisandreL от Январь 21, 2013, 18:50 INNO Setup, dll лежат рядом с экзешником (плагины в подпапках). Установщик под пользовательским аккаунтом будет требовать админских прав и это правильно.
Строго говоря - возможно, Win7 перехватывает запись в системные каталоги неавторизованными процессами и перенаправляет их во временные каталоги, куда есть запись. Не помню как называется эта хрень. И даже в реестр. Виртуализация называется (папка VirtualStore).Название: Re: Распространение на Windows. Прошу практических советов... Отправлено: 0x0001 от Январь 22, 2013, 10:40 Alex Custov, Kurles
Большое Спасибо за Информацию! Буду пробовать, отпишусь "по деталям" если что, возможно пригодится кому-то... |