На сегодняшний момент сделал достаточно много, но всплыли давние ошибки, которые потребовали переписывания ряда функций.
1. Сделал давно обещанную проверку 32/64 бита и всплыла проблема номер 2
2. Если использовался чектег и пресеты, то чектег не работал - при выборе пресета все равно показывались пункты, у которых чектег был не найден и которые были при проверке заблокированы и скрыты.
Это я победил. Но всплыл баг номер 3.
3. Если есть цепочка зависимых друг от друга пунктов
Например
Installitem_00000 зависит от установки Installitem_00001
Installitem_00001 зависит от установки Installitem_00002
Installitem_00002 зависит от установки Installitem_00003
Installitem_00000 зависит от установки Installitem_00004 или Installitem_00005
И, если Installitem_00004 и Installitem_00005 недоступны или по чектег или по битности, то Installitem_00000 может остаться доступным. И, этот пример может вполне быть жизненным - например установка варианта программы и комплекта ненакопительных обновлений к ней.
Вообщем, пара функций проверки зависимостей работают никуда не годно. Или не работает до конца или сваливается в рекурсию без выхода и с переполнением стека.
Так что, этот застарелый баг требует решения и я на нем застрял. Вот. Буду думать дальше.
Цитата hobbit25:
Я вот не понимаю всю демагогию по поводу 64 битной версии
сам ставлю с существующего BS на обе системы
а чего и куда ставить в зависимости от 86 64 возложил на 7z sfx который с этим отлично справляется) »
|
Вы установили программу с универсальным инсталлятором 32/64бит на 64 бит систему. Программа легла в Program Files.
А затем второй командой решили добавить в ее папку файл ключа или дефолтных настроек.
%ProgramFiles% раскроется в Program files (x86) и файл ключа или настройки будет скопирован не по адресу.
%ProgramW6432% применять не выход, ибо под x86 системой не сработает, а инсталлятор универсальный.
И, cmd запускается всегда 32бит, что порождает те же проблемы.
Вопрос с промежуточной 64бит заглушкой и передачей ей параметров решен почти полностью, но без решения вышеуказанных багов выкладывать даже бетту нет смысла, так как любая блокирующая пункты проверка (по чектегу, битности, версии оси) может привети к ошибке.