Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 341
Благодарности: 128

Профиль | Сайт | Отправить PM | Цитировать


Очередные обновления, пока только в SVN, обновления сайта и справки позже

1.6.2.3888-Stable:
Цитата:
1.6.2 Release (сборка 3888) 20.03.16
* Манифест некорректно работал в Windows XP без установленных обновлений (yurecnew:forum.oszone.net)
* Исключение при пустом файле конфигурации (gora:forum.oszone.net)

1.6.1 Release (сборка 3873) 05.03.16
* Окна некоторых дочерних процессов отображались на заднем плане (ArtXGroup:forum.oszone.net)
1.7.0.3888-Develop
Цитата:
1.7 develop (сборка 3888) 20.03.16
* Манифест некорректно работал в Windows XP без установленных обновлений (yurecnew:forum.oszone.net)
* Исключение при пустом файле конфигурации (gora:forum.oszone.net)
+ Параметры 'ExtractMaskExclude', 'ExtractMaskInclude' в конфигурационном файле
+ Флаг 32 'MiscFlags' - меняет порядок обработки параметров 'ExtractMaskExclude', 'ExtractMaskInclude'
+ Дополнительная папка *.sfx.api.* в корне архива
+ Дополнительный файл конфигурации *.sfx.config в корне архива

1.7 develop (сборка 3873) 05.03.16
# Работа ключа '-nr' распространена на параметры 'ExecuteOnLoad', 'PreExtract', 'PreExtractX'
Кратко о новых параметрах и флаге

Цитата:
ExtractMaskExclude="mask"
Определяет маску файлов для исключения из распаковки. Параметр множественный, в каждом параметре указывается только одна маска.
Поддерживается только один тип префиксов - платформа операционной системы (x64 или x86).
Например:
ExtractMaskExclude="x86:*_x64.sfx"
- исключит из распаковки все 64-битные модули, если запуск произведен в 32-битной операционной системы
ExtractMaskExclude="*.sfx"
- исключит из распаковки все модули, независимо от системы, остальные файлы будут распакованы
Если параметр не указан и указан MiscFlags=32, то автоматически используется:
ExtractMaskExclude="*"

ExtractMaskInclude="mask"
Определяет маску файлов для распаковки. Параметр множественный, в каждом параметре указывается только одна маска.
Поддерживается только один тип префиксов - платформа операционной системы (x64 или x86).
Например:
ExtractMaskInclude="x64:*_x64.sfx"
- распакует только 64-битные модули, если запуск произведен в 64-битной операционной системы
ExtractMaskInclude="%%P:%%P\\*"
- распакует папку (%%P), соответствующую разрядности системы в которой запущен SFX и все ее содержимое, остальное пропустит
Если параметр не указан и не указан MiscFlags=32, используется:
ExtractMaskInclude="*"

MiscFlags="x"
32 - сменить порядок обработки параметров 'ExtractMaskExclude', 'ExtractMaskInclude'
Цитата:
Без MiscFlgs=32 Обработка идет так:
1. Проверяем 'ExtractMaskExclude'. Файл попадает в маску - НЕ распаковываем, переходим к следующему файлу
2. Тут файл не попал в маску 'ExtractMaskExclude', поэтому проверяем 'ExtractMaskInclude', если файл попадает в маску - распаковываем

С MiscFlags=32
1. Проверяем 'ExtractMaskInclude'. Файл попадает в маску - распаковываем, переходим к следующему файлу
2. Тут файл не попал в маску 'ExtractMaskInclude', поэтому проверяем 'ExtractMaskExclude', если файл попадает в маску - НЕ распаковываем
Цитата:
Модуль, кроме основного файла конфигурации, поддерживает дополнительный файл конфигурации, который должен быть расположен в корне архива и должен называться *.sfx.config, где вместо звездочки может быть любое имя.
Основной файл конфигурации, пусть даже пустой, всё равно должен присутствовать, т.к. именно его сигнатуры служат маркером что "это SFX архив"


Последовательность загрузки файлов конфигурации и обработка их модулем


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

Загрузка происходит так:

Сначала в рабочий файл конфигурации загружается основной файл конфигурации
Парсится и применяется командная строка, модифицируется рабочий файл конфигурации
Открывается архив и в его корне ищется дополнительный файл конфигурации *.sfx.config
Если дополнительный файл конфигурации *.sfx.config найден, то весь рабочий файл конфигурации сбрасывается
Снова в рабочий файл конфигурации загружается основной файл конфигурации
Дополнительный файл конфигурации ПОДГРУЖАЕТСЯ к рабочему файлу конфигурации
Заново парсится и применяется командная строка, модифицируется рабочий файл конфигурации
После завершения загрузки, созданный рабочий файл конфигурации обрабатывается.

Параметры обрабатываются (переопределяются/добавляются) в том порядке, в котором они были загружены и в котором они стояли в файлах конфигурации.

Если параметр НЕ множественный, то используется последнее значение. Например, если 'Title' указан в обоих файлах конфигурации, будет использован тот, который определен в дополнительном файл конфигурации.

Если параметр множественный, то он просто добавляется в список.

Если необходимо ПОЛНОСТЬЮ переопределить какой-то множественный параметр, можно обнулить список этого параметра (т.е. удалить все предыдущие), указав в нем знак, минус (-), например:

RunProgram=-


Хотя файлов *.sfx.config может быть сколько угодно, не рекомендуется увлекаться их разбиением, т.к. порядок их загрузки зависит от их очередности в архиве и может быть непредсказуем, что в свою очередь может повлиять на переопределение параметров. Для повседневных нужд достаточно разбивать на "платформа", "язык", "платформа/язык", т.е., чтобы каждый файл был со своей сигнатурой, чтобы сигнатуры не повторялись.

-------
http://7zsfx.info

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:52, 21-03-2016 | #1708