PDA

Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [47] 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

gora
25-12-2009, 15:46
как я понял проблема в LZMA2 »Не правильно поняли. От метода сжатия это не зависит и проявляется при любом методе.Но так как я не извлекал модули как можно объяснить мою проблему? »
Я не понял вашей проблемы и не стал про нее отвечать. Я не понимаю, что значит "нечитаемые". Я не знаю какая у Вас Win7 (х86 или х64). Я не знаю что происходит с "нечитаемыми" файлами при возврате в Win7 (начинают они читаться или нет). Я не знаю изменяется ли их к.с. при выходе из Win7 и входе в нее обратно. Я не знаю где они у Вас расположены, на каком диске, на флешке или нет, на диске с одной из систем или на совсем другом диске, пробовали ли Вы сохранить их в другом месте, например, на флешке при смене системы и что при этом происходит с файлами. И т.д. и т.п....

Pozia
25-12-2009, 15:55
gora, подожду тогда обновления модуля и если проблема останется опишу более детально.

gora
25-12-2009, 16:00
версия кнопки - майская. Метод сжатия - не знаю, сам архив не перепаковывал, а кнопкой распаковал-упаковал »
ЕМНИП та версия кнопки не умела самостоятельно определять метод сжатия архива и выбирать подходящий модуль. Возможно у Вас просто не стыковка методов сжатия архива и типа модуля.

LonerD
25-12-2009, 21:43
Не используйте архивы и модули, извлеченные из SFX, для повторной сборки. Проблема локализована и исправлена в новых модулях (тестируются), сроки их выкладывания определит автор.
Проблема присутствует только в модулях версии 1.4 alpha (сборка 1501), в 1.3.0 Release (сборка 1501) ее нет.»
Спасибо, действительно примерно в одно время перешел на версию 1.4 alpha и на семерку, и с тех пор несколько раз появилась ошибка.

Возможно у Вас просто не стыковка методов сжатия архива и типа модуля. »
Похоже на это

Oleg_Sch
26-12-2009, 06:59
gora, подожду тогда обновления модуля и если проблема останется опишу более детально. »
Обновление будет только после новогодних каникул.

TechnicsKuzya
26-12-2009, 12:33
Кому необходимо запускать с помощью 32-битного sfx-модуля cmd-скрипт ориентированный на обработку 64-битным cmd.exe, вот рабочее решение:

К примеру, есть скрипт Setup_64.cmd, ориентированный на использование 64-битной версии cmd.exe.

В папку Tools помещаем 64-битный cmd.exe из папки C:\Windows\System32 (копировать только через 64-битный софт, иначе будет редирект в папку C:\Windows\SysWow64 и Вы скопируете 32-битный cmd.exe).

Подтверждением того, что Вы используете 64-битную версию коммандного процессора, может служить его соответствующее отображение в диспетчере задач, т.е. без идентификатора *32.


Создаем скрипт, к примеру Start.cmd c содержанием:

@echo off
.\Tools\cmd.exe /Q /K "call Setup_64.cmd"
exit

Теперь запускаем из sfx - скрипт Start.cmd - он будет запущен с помощью 32-битной версии cmd.exe (В диспетчере задач увидете cmd.exe *32), а скрипт Start_64.cmd уже будет вызван с помощью 64-битной версии cmd.exe (в диспетчере задач увидете рядом с cmd.exe *32 - cmd.exe - это и будет среда выполнения скрипта Start_64.cmd.

Тут немного подробнее о вышесказанном... (http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=2020#17)

Pozia
03-01-2010, 16:48
Подскажите конфигурационный файл который бы выполнял набор команд в зависимости от наличия нужного файла в нужном месте. То есть если по определенному пути лежит маркерный файл то выполняются одни команды, если лежит другой маркерный файл то выполняются другие команды. мне это нужно чтобы сделать один SFX архив который бы коректно работал и на XP и на Seven. А по маркерному файлу я и буду определять какая винда.

Dmitry_K
05-01-2010, 13:37
Подскажите конфигурационный файл который бы выполнял набор команд в зависимости от наличия нужного файла в нужном месте. »
конфигурационный файл этого не может, но он может запустить другой файл, который будет выполняться в любом случае и который будет проверять наличие той или иной версии ОС и выполнять необходимые действия

Pozia
05-01-2010, 18:12
Dmitry_K, так я так сейчас и делаю, но думал через конфигурационный файл так можно, а то так как я делаю архив сразу распаковывается а потом выполняет файл что неудобно при большом архиве

Pozia
05-01-2010, 23:37
Oleg_Sch, заметил косяк в методе lzma2. в частности делаю кнопкой SFX для VirtualBox. Содержание архива:
.VirtualBox\
common.cab
run.cmd
VirtualBox312.msi

Косяк в том что когда соберу SFX архив кнопкой то при открытии в 7zip или распаковки им я получаю содержание cab архива что внутри. Если его оттуда убрать то никаких проблем. Также нет проблем с cab при сжатии lzma.

Dmitry_K
06-01-2010, 11:20
Oleg_Sch, заметил косяк в методе lzma2. »
а при чем здесь модуль, когда сжимает файлы кнопка? модуль для сжатия не используется ;)

jameszero
06-01-2010, 12:21
Pozia
Подскажите конфигурационный файл который бы выполнял набор команд в зависимости от наличия нужного файла в нужном месте.
мне это нужно чтобы сделать один SFX архив который бы коректно работал и на XP и на Seven.»
В аддоне Opera (http://forum.oszone.net/thread-68566.html) для этой цели используется такой фрагмент:
RunProgram="hidcon:cmd /c If Exist \"%UserProfile%\\AppData\" xcopy \"profile\" \"%APPDATA%\\Opera\\Opera\" /e /i /y"
RunProgram="hidcon:cmd /c If Not Exist \"%UserProfile%\\AppData\" xcopy \"profile\" \"%UserProfile%\\Application Data\\Opera\\Opera\" /e /i /y"

Pozia
06-01-2010, 18:01
а при чем здесь модуль, когда сжимает файлы кнопка? »

если кнопка сжимает тогда чем модуль занимается? И почему при использовании lsma все нормально?

gora
06-01-2010, 18:04
тогда чем модуль занимается? »
Модуль необходим для распаковки архива из SFX, а также для организации диалога с пользователем в ходе распаковки/установки SFX.

Pozia
06-01-2010, 18:10
gora, так это баг кнопки? Вы такую ситуацию с cab архивом пытались воспроизвести?

gora
06-01-2010, 18:36
Вы такую ситуацию с cab архивом пытались воспроизвести? »
Не подтверждаю!
Сделал 4 SFX и открыл их в 7zFM, во всех случаях вижу:.VirtualBox\
common.cab
run.cmd
VirtualBox312.msi »
Система: Win 7 x64
Архиватор: 7-Zip (x64) v 9.10 beta2
Модули:
LZMA v1.4.0. сборка 1501
LZMA v1.4.0. сборка 1599
LZMA2 v1.4.0. сборка 1501
LZMA2 v1.4.0. сборка 1599
Кнопка: v14.1.1112 от 03.01.2010

Pozia
06-01-2010, 18:42
Кнопка: v14.1.1112 от 03.01.2010 »
данную версию кнопки я так понимаю получить нельзя?

gora
06-01-2010, 18:57
Pozia, правильно понимаете, рабочие версии не выкладываются. Тема кнопки здесь оффтоп, все новости на сайте кнопки.
Я привел пример оформления баграпорта, без этих данных сложно воспроизвести вашу ошибку.

Pozia
09-01-2010, 13:50
В аддоне Opera для этой цели используется такой фрагмент:
Код:
RunProgram="hidcon:cmd /c If Exist \"%UserProfile%\\AppData\" xcopy \"profile\" \"%APPDATA%\\Opera\\Opera\" /e /i /y"
RunProgram="hidcon:cmd /c If Not Exist \"%UserProfile%\\AppData\" xcopy \"profile\" \"%UserProfile%\\Application Data\\Opera\\Opera\" /e /i /y"»[/post]

Скажите пожалуйста, данное условие проверяется до распаковки содержимого SFX архива или после? Просто хочется сэкономить время на распакове архива для больших программ

и никак не могу переписать для себя команду, помогите пожалуйста. Я так пытаюсь записать, но ошибка:

RunProgram="hidcon:cmd /c If Exist \"%Windir%\\system32\\MarkerXP.m" run.cmd"

Мне нужно чтобы проверилось условие и при положительном результате запустился Run.cmd

gora
09-01-2010, 14:01
данное условие проверяется до распаковки содержимого SFX архива или после? »
После. не могу переписать для себя команду »
RunProgram="hidcon:cmd /c If Exist \"%Windir%\\system32\\MarkerXP.m\" run.cmd"




© OSzone.net 2001-2012