Регистрация | Вход
paf.ucoz.ru
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Portable Soft » Создание портативных приложений » PortableApps.com Format™ 2.0 (2010-08-01) (Спецификация PortableApps.com Format)
PortableApps.com Format™ 2.0 (2010-08-01)
AdminДата: Воскресенье, 28.11.2010, 14:17 | Сообщение # 1
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
PortableApps.com Format™ 2.0 (2010-08-01)

Портативные программы формата PortableApps.com Format(paf) работают по схеме, напоминающую инсталляцию и деинсталляцию приложений. Состоят они из лаунчера (по-русски, запускальщик), папки с собственно самой программой и ее файлами, и файлами настроек лаунчера (или другими, которые связаны с работой лаунчера). Последних может и не быть, если настройки прописаны в самом лаунчере. Через него и запускается основной exe-файл. Каталог в такой portable с основной запускаемой программой и ее файлами считается как бы папкой, в которой установлено приложение.

Что бы было понятно, как это работает, опишу примерный алгоритм в лаунчере (самый простой):

1. Создается резервная копия веток реестра (или конфигурационных файлов) и файлов, расположенных вне инсталлированной папки, от которых зависит работа приложения. (Это делается на тот случай, когда в системе установлена такая же или другая версия этого приложения).
2. Импортирование в реестр необходимых для работы приложения данных, так же как и копирование тех файлов, которые должны находиться вне папки portable (напр., в …/System32).
3. Запуск основной программы и ожидание ее закрытия.
4. (По завершению) Экспорт настроек из реестра (или конфигурационных файлов) в portable.
5. Очищает следы работы программы (точнее, удаление временных файлов).
6. Восстановление в систему тех ключей реестра и файлов, которые были зарезервированы в 1-ом шаге алгоритма.

На данный момент большинство портативных программ компилируется в NSIS. Точнее, пишется скрипт, реализуя вышеописанный алгоритм, и компилируется в лаунчер. На самом деле для создания лаунчера подойдет любой скриптовый язык, по возможностям схожий с NSIS и AutoIt, который можно скомпилировать в исполняемый файл.

PortableApps.com Format это спецификация управляющая размещением файлов и папок, а также поведением портативных приложений. Установочный файл распространяется с расширением .paf.exe™. Для удобства спецификация разбита на разделы.

1. Схема размещения файлов и папок.
2. AppInfo.ini (Конфигурация приложения)
3. Иконки
4. PortableApps.com AppCompactor и AppCompactor.ini
5. PortableApps.com Installer и installer.ini
6. Host PC Modifications и Portability
7. Plugin Installers
8. История версий

Оригинал на английском языке вы можете прочесть здесь.
Если есть желающие заняться переводом, напишите в этой теме.
Так же жду замечаний по ошибкам в переводе.

AdminДата: Вторник, 07.12.2010, 22:05 | Сообщение # 2
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
1. Схема размещения файлов и папок

Базовая схема каталога портативного приложения состоит из основной папки AppNamePortable и входящих в нее папок App, Data и Other.

Code
AppNamePortable
+ App
     + AppInfo
     + AppName
     + DefaultData
+ Data
+ Other
     + Help
       + Images
     + Source

AppNamePortable: содержит файл Launcher'а портативного приложения, обычно называемого AppNamePortable.exe и файл справки help.html. Больше никакие файлы в данной папке не располагаются.

App: Содержит все файлы приложения, которые лежат в папке AppName. Папка AppInfo содержит иконки приложения,а так же данные для конфигурации PortableApps.com Platform и PortableApps.com Installer. Еще может содержать папку Launcher с файлом Launcher.ini для PortableApps.com Launcher. Третья папка DefaultData
содержит файлы которые по умолчанию должны лежать в папке Data. При запуске Launcher проверяет есть ли файлы в папке Data и если она пуста он копирует их из папки DefaultData.

Data: содержит все пользовательские данные для приложения включая настройки и все прочие файлы которые обычно хранятся в папке $APPDATA$ локально установленного приложения. Настройки могут содержать поддиректории. При этом если удалить папку Data и запустить портативное приложение, то она запустится как будто вы только что установили его портативную версию.

Other: содержит файлы и папки которые не вписываются в остальные директории. Подпапка Help содержит картинки и другие файлы используемые в файле help.html. Папка Source может содержать исходники для Launcher'а или файла установки, лицензию или файл readme.txt.

AdminДата: Вторник, 07.12.2010, 22:07 | Сообщение # 3
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
2. AppInfo.ini (Конфигурация приложения)

Информация о конфигурации приложения необходим для PortableApps.com Platform и PortableApps.com Installer.Она расположена в папке AppInfo находящейся в директории AppNamePortable\App. В данной папке расположен файл appinfo.ini и иконки приложения.
Файл appinfo.ini состоит из следующих параметров:

Code
[Format]
Type=PortableApps.comFormat
Version=2.0

[Details]
Name=AppName Portable
AppId=AppNamePortable
Publisher=App Developer & PortableApps.com
Homepage=PortableApps.com/AppNamePortable
Category=Utilities
Description=AppName Portable is a tool that does something.
Language=Multilingual
Trademarks=
InstallType=

[License]
Shareable=true
OpenSource=true
Freeware=true
CommercialUse=true
EULAVersion=1

[Version]
PackageVersion=1.2.0.1
DisplayVersion=1.2 Release 1

[SpecialPaths]
Plugins=NONE

[Dependencies]
UsesJava=false
UsesDotNetVersion=

[Control]
Icons=1
Start=AppNamePortable.exe
ExtractIcon=App\AppName\AppName.exe

Раздел [Format]
Type=Тип файла конфигурации (На данный момент только PortableApps.comFormat)
Version=Версия формата файла (На данный момент актуальна 2.0)

Раздел [Details]
Name=Название портативного приложения, как будет отображаться в PortableApps.com Menu
AppId=Уникальный идентификатор приложения. Как правило название без пробелов
Publisher=Издатель приложения. Если вы перепаковывали приложение необходимо перечислить всех издателей.
Homepage=Сайт портативного приложения. Не базового(портатируемого).
Category=Категория приложения в PortableApps.com Platform. Может быть: Accessibility, Development, Education, Games, Graphics & Pictures, Internet, Music & Video, Office, Security or Utilities.
Description=Краткое описание приложения. До 512 символов.
Language=Язык приложения. Может быть как multilingual, так и определенной страны: Afrikaans, Albanian, Arabic, Armenian, Basque, Belarusian, Bosnian, Breton, Bulgarian, Catalan, Cibemba, Croatian, Czech, Danish, Dutch, Efik, English, Estonian, Farsi, Finnish, French, Galician, Georgian, German, Greek, Hebrew, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Khmer, Korean, Kurdish, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Mongolian, Norwegian, NorwegianNynorsk, Pashto, Polish, Portuguese, PortugueseBR, Romanian, Russian, Serbian, SerbianLatin, SimpChinese, Slovak, Slovenian, Spanish, SpanishInternational, Swahili, Swedish, Thai, TradChinese, Turkish, Ukranian, Uzbek, Valencian, Vietnamese, Welsh, Yoruba.
Trademarks(при необходимости)=Торговые марки. Например HappyApp является торговой маркой компании Acme, Inc
InstallType(при необходимости)=

Раздел [License](Все значения только true или false)
Shareable=Имеете ли вы право скопировать приложение с одного диска на другой. (За исключением папки Data)
OpenSource=Является ли приложение с полностью открытым кодом под лицензией OSI.
Freeware=Является ли приложение свободным.(Бесплатным)
CommercialUse=Имеете ли вы право использовать приложение в коммерческих целях.
EULAVersion(при необходимости)=Используется ли Лицензионное соглашение. Если да, то необходимо положить файл EULA.txt или EULA.rtf с текстом соглашения. Оно будет приниматься при установке.

Раздел [Version]
PackageVersion=Версия пакета. Должно быть в формате 1.2.3.4 и увеличиваться с каждым публичным релизом.
DisplayVersion=Вариант для описания версии. Например может быть DisplayVersion: 2.4 Revision 2, а PackageVersion: 2.4.0.2.

Категория [SpecialPaths]
Plugins(при необходимости)=Путь к папке с плагинами приложения, если она находится в каталоге App.(Как например с Firefox)

Раздел [Dependencies]
UsesJava(при необходимости)=Определяет использует ли приложение Java Portable.(true или false)
UsesDotNetVersion(при необходимости)=Определяет какая минимальная версия .NET framework должна быть установлена.(Поддерживаются значения 1,1, 2,0, 3,0, 3,5)

Раздел [Control]
Icons=Количество иконок в PortableApps.com Menu.
Start=Какое приложение запускать из PortableApps.com Menu.(Прописывается просто AppNamePortable.exe)
ExtractIcon(при необходимости)=Если в папке AppInfo нет иконки приложения (appicon.ico), то тут указывается путь к исполняемому файлу из которого будет взята иконка. Использовать в редких случаях, так как замедляет работу.(Например App\AppName\AppName.exe)

Если приложение имеет несколько лаунчеров (как в OpenOffice.org Portable) и необходимо чтобы они все отображались в PortableApps.com Menu, тогда раздел [Control] будет иметь вид:

Code
[Control]
Icons=2
Start=AppNamePortable.exe
Start1=AppNamePortable.exe
Name1=AppName Portable
Start2=AppNamePortable2.exe
Name2=AppName Portable Other Part

Icons количество иконок

Start Основное приложене

Start1 Запускаемое приложение для 1 иконки(обычно тоже что и в Start)

Name1 Имя приложения в меню для 1 иконки.

Start2 Запускаемое приложение для 2 иконки

Name2 Имя приложения в меню для 2 иконки.

AdminДата: Вторник, 07.12.2010, 22:08 | Сообщение # 4
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
3. Иконки

В папке AppNamePortable\App\AppInfo расположены иконки портативного приложения, которые используются в PortableApps.com Installer и PortableApps.com Menu. Иконки имеют ICO и PNG формат. Иконки имеют названия appicon.ico, appicon_16.png, appicon_32.png и appicon_128.png*, где цифры указывают размер иконки. Если приложение использует несколько наборов иконок (например 2 файла запуска), тогда дополнительные иконки должны иметь название appicon1.ico (appicon1_16.png и appicon1_32.png), appicon2.ico, и т.д. Номера иконок соответствуют номерам приложений в разделе [Control] (Start1, Start2, и т.д.) файла AppInfo.ini.

* Обратите внимание, что 128px вариант не является обязательным и не требуется для компиляции. Тем не менее, издатели рекомендуется включать иконку с высоким разрешением для предстоящих особенностей в платформе.

PNG иконки имеют размер 16x16 и 32x32 соответственно названию, формат True Color с альфа-прозрачностью (alpha transparency).

ICO файл в формате Windows ICO и содержит 6 необходимых изображений, а также Vista формат по желанию:

16px - 256 color (8-bit)
32px - 256 color (8-bit)
48px - 256 color (8-bit)
16px - True Color + Alpha (32-bit / XP format)
32px - True Color + Alpha (32-bit / XP format)
48px - True Color + Alpha (32-bit / XP format)
256px - True Color + Alpha PNG (32-bit PNG / Vista format) *ПО ЖЕЛАНИЮ

* 256px размер Alpha PNG не является обязательным. Он используется Windows Vista\7 для отображения больших и очень больших размеров значков. Некоторые издатели, возможно, пожелают включить его.

ExtractIcon Примечание - в пакетах, которые используют функцию ExtractIcon в appinfo.ini, то appicon.ico и PNG версии значков не будут использоваться, и могут быть пропущены. Общий appicon.ico будет включен для обратной совместимости.

AdminДата: Вторник, 07.12.2010, 22:08 | Сообщение # 5
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
4. PortableApps.com AppCompactor и AppCompactor.ini

PortableApps.com AppCompactor используется для сжатия программы, чтобы иметь меньший размер и запускаться быстрее при ограниченнной пропускной способности съемных носителей. Как правило, AppCompactor работает полностью автоматически, вы просто выбираете каталог портативного приложения. Иногда, некоторые программы несовместимы с AppCompactor и необходимо указать какие файлы сжимать, а какие нет. Для этого используется файл AppCompactor.ini.

AppCompactor.ini находится в папке App\AppInfo наряду с AppInfo.ini и Installer.ini. Пример файла:

Code
[PortableApps.comAppCompactor]
FilesExcluded=msvcm90.dll|msvcp90.dll|mscvr90.dll
AdditionalExtensionsExcluded=pyd|irc
AdditionalExtensionsIncluded=example|beta

Раздел [PortableApps.comAppCompactor]:

Примечание: Если вы не планируете использовать PortableApps.com AppCompactor или не нужно вносить изменения в стандартную схему сжатия, этот раздел должен быть опущен.

FilesExcluded какие файлы вы бы хотели пропустить из сжатия AppCompactor. Разделителем выступает "|".

AdditionalExtensionsExcluded дополнительные типы файлов, которые необходимо исключить из сжатия.Разделителем выступает "|".

AdditionalExtensionsIncluded дополнительные типы файлов, которые необходимо включить в сжатие.Разделителем выступает "|".

AdminДата: Вторник, 07.12.2010, 22:09 | Сообщение # 6
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
5. PortableApps.com Installer и installer.ini

Инсталлер (установщик) получает настройки из файла appinfo.ini, а также, при необходимости, дополнительные настройки указываются в файле installer.ini, который также находится в папке AppInfo. При помощи installer.ini можно более детально настроить процесс установки.

installer.ini состоит из:

Обратите внимание, что этот пример показывает все возможные опции! Для каждого проекта используйте только необходимые параметры.

Code
[CheckRunning]
CloseEXE=Custom.exe
CloseName=AppName

[Source]
IncludeInstallerSource=false

[MainDirectories]
RemoveAppDirectory=true
RemoveDataDirectory=false
RemoveOtherDirectory=true

[OptionalComponents]
OptionalComponents=true
MainSectionTitle=AppName Portable (English) [Required]
MainSectionDescription=Install the portable app
OptionalSectionTitle=Additional Languages
OptionalSectionDescription=Add multilingual support for this app
OptionalSectionSelectedInstallType=Multilingual
OptionalSectionNotSelectedInstallType=English
OptionalSectionPreSelectedIfNonEnglishI     nstall=true
OptionalSectionInstalledWhenSilent=true
OptionalDirectory1=
OptionalFile1=

[CopyLocalFiles]
CopyLocalFiles=true
CopyFromRegPath=HKLM\Software\AppName
CopyFromRegKey=AppPath
CopyFromRegRemoveDirectories=2
CopyFromDirectory=%PRO     GRAMFILES%\AppName
CopyToDirectory=App\AppName

[DownloadFiles]
DownloadURL=
DownloadName=
DownloadFilename=
DownloadMD5=
DownloadTo=
AdditionalInstallSize=
Extract1To=
Extract1File=
AdvancedExt     ract1To=
AdvancedExtract1Filter=
DoubleExtractFilename=
DoubleExtract1To=
DoubleExtract1Filter=

[Languages]
ENGLISH=true
AFRIKAANS=true
ALBANIAN=true
ARABIC=true
ARMENIAN=true
BASQUE=true
BELARUSIAN=true
BOSNIAN=true
BRETON=true
BULGARIA     N=true
CATALAN=true
CIBEMBA=true
CROATIAN=true
CZECH=true
DANISH=true
DUTCH=true
EFIK=true
ESPERANTO=true
ESTONIAN=true
FARSI= t r ue       
FINNISH=true
FRENCH=true
GALICIAN=true
GEORGIAN=true
GERMAN=true
GREEK=true
HEBREW=true
HUNGARIAN=true
ICELANDIC=true
IGB O = true     
I NDONESIAN=true
IRISH=true
ITALIAN=true
JAPANESE=true
KHMER=true
KOREAN=true
KURDISH=true
LATVIAN=true
LITHUANIAN=true
LUXEMBOURGISH     =true
MACEDONIAN=true
MALAGASY=true
MALAY=true
MONGOLIAN=true
NORWEGIAN=true
NORWEGIANNYNORSK=true
PASHTO=true
POLISH=true
PORT U G UE  SE=true
PORTUGUESEBR=true
ROMANIAN=true
RUSSIAN=true
SERBIAN=true
SERBIANLATIN=true
SIMPCHINESE=true
SLOVAK=true
SLOVENIAN=true
S   PA  NISH=true
SPANISHINTERNATIONAL=true
SWAHILI=true
SWEDISH=true
THAI=true
TRADCHINESE=true
TURKISH=true
UKRAINIAN=true
UZBEK=tru e
V  AL  ENCIAN=true
VIETNAMESE=true
WELSH=true
YORUBA=true

[DirectoriesToPreserve]
PreserveDirectory1=

[DirectoriesToRemove]
RemoveDirectory1=

[FilesToPreserve]
PreserveFile1=

[FilesToRemove]
RemoveFile1=

Раздел [CheckRunning]
CloseEXE (опционально) проверяет не запущен ли указанный exe файл. Если файл EXE является таким же, как указано в [Control] - Start файла appinfo.ini (ваш лаунчер), эта запись должна быть исключена из installer.ini. Если вы хотите, чтобы проверка не проводилась, установите CloseEXE = NONE (в верхнем регистре), но это должно быть сделано с осторожностью, так как пользователь может попробовать обновить приложение, пока оно выполняется.
CloseName (опционально) позволяет назначить имя приложения, что будет закрыто при обновлении. Если имя такое же, как имя портативного приложения, как указано в appinfo.ini то эта запись должна быть исключена из installer.ini.

Раздел [Source] (значение true или false)
IncludeInstallerSource (опционально) позволяет включать исходные коды PortableApps.com Installer для установки их вместе с портативным приложением. При необходимости установите "true".

Раздел [MainDirectories] (Все значения только true или false)
Позволяет указать, следует ли удалять указанные папки при установке новой версии поверх уже существующей. По умолчанию, App и Other папки удаляются, а папка Data сохраняется.
Если вы хотите использовать эти значения по умолчанию, не указывайте этот раздел в installer.ini.
RemoveAppDirectory=Очищать ли папку App?
RemoveDataDirectory=Очищать ли папку Data?
RemoveOtherDirectory=Очищать ли папку Other?

Раздел [OptionalComponents]

OptionalComponents - когда установлено в True, это дает возможность при установке выбрать дополнительный компонент установки. Это обычно используется для установки дополнительных языков приложения.
MainSectionTitle (необязательно): имя основного приложения в окне выбора компонентов установки. По умолчанию он будет выглядеть так: "AppName Portable (English) [Required]". AppName Portable берется из appinfo.ini. Если вас устраивают настройки по умолчанию, можете пропустить эту запись.
MainSectionDescription (необязательно): описание основного приложения в окне выбора компонентов установки. По умолчанию: "Install the portable app". Если вас устраивают настройки по умолчанию, можете пропустить эту запись.
OptionalSectionTitle (необязательно): имя компонента приложения в окне выбора компонентов установки. По умолчанию: "Additional Languages". Если вас устраивают настройки по умолчанию, можете пропустить эту запись.
OptionalSectionDescription (необязательно): описание компонента приложения в окне выбора компонентов установки. По умолчанию: "Add multilingual support for this app". Если вас устраивают настройки по умолчанию, можете пропустить эту запись.
OptionalSectionSelectedInstallType (необязательно) что будет записано в appinfo.ini и отображаться в PortableApps.com Platform, если пользователь устанавливает приложение с дополнительным компонентом. По умолчанию: "Multilingual". Если вас устраивают настройки по умолчанию, можете пропустить эту запись.
OptionalSectionNotSelectedInstallType (необязательно) что будет записано в appinfo.ini и отображаться в PortableApps.com Platform, если пользователь устанавливает приложение без дополнительного компонента. По умолчанию: "English". Если вас устраивают настройки по умолчанию, можете пропустить эту запись.
OptionalSectionPreSelectedIfNonEnglishInstall (опционально) определяет, будет ли дополнительный компонент выбран по умолчанию, если пользователь выбрал установку на любом другом языке, кроме английского. По умолчанию: "true". Если вас устраивают настройки по умолчанию, можете пропустить эту запись.
OptionalSectionInstalledWhenSilent (опционально) определяет, будет ли дополнительный компонент установлен, если была запущена тихая установка в автоматическом режиме. По умолчанию: "true".
OptionalDirectory1 позволяет указать, какие папки входят в дополнительный компонент программы установки. OptionalDirectory1 и выше доступны для использования(OptionalDirectory2,..). Путь должен быть относительным.
Пример: OptionalDirectory1=App\AppName\locales
OptionalFile1 позволяет указать, какие конкретно файлы входят в дополнительный компонент программы установки. OptionalFile1 и выше доступны для использования(OptionalFile2,..). Путь должен быть относительным. Если, например, вы хотите выбрать все .Lang файлы в папке AppName, укажите: OptionalFile1=App\AppName\*.Lang

[OptionalComponents] Примечание: Вы должны использовать либо OptionalDirectory1 или OptionalFile1 чтобы указать файлы для включения в дополнительный компонент программы установки.

Чтобы было более понятно про раздел OptionalComponents, посмотрите пример из моего файла installer.ini для программы QIP:

Code
[OptionalComponents]
OptionalComponents=true
MainSectionTitle=Qip 2010
MainSectionDescription=Только Qip 2010
OptionalSectionTitle=Плагины
OptionalSectionDescription=Плагины для Qip 2010
OptionalSectionSelectedInstallType=QIP 2010
OptionalSectionNotSelectedInstallType=QIP 2010
OptionalSectionPreSelectedIfNonEnglishInstall=True
OptionalDirectory1=app\Qip2010\Plugins\Checkers
OptionalDirectory2=app\Qip2010\Pl ugins\gtForm
OptionalDirectory3=app\Qip2010\Plugins\QipSea
OptionalDirectory4=app\Qip2010\Plugins\QiPSpeller
OptionalDirectory5=app\Qip20 10\Plugins\UmorList
OptionalDirectory6=app\Qip2010\Plugins\smssend
OptionalDirectory7=app\Qip2010\Plugins\sTypograph
OptionalDirectory8=a pp\Qip2010\Plugins\WInfo

К сожалению пока можно сделать только один компонент для установки.
AdminДата: Вторник, 07.12.2010, 22:09 | Сообщение # 7
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
Within the optional [CopyLocalFiles] section:

This section is used to copy files in from a local installation of an application.

CopyLocalFiles is used to indicate that this section is enabled. It should be set to true.

CopyFromRegPath is used when the path to the local files is indicated within a key in the registry. Generally, this will be in the form of HKLM\Software\AppName.

CopyFromRegKey is used in conjunction with CopyFromRegPath. It indicates the Key within the registry path above that should be used.

CopyFromRegRemoveDirectories is used to indicate the number of directories to strip from the Key read in to arrive at the directory that should be copied. If the Key indicates a path to a file rather than a directory, it should be increased by one. For example, if the Key generally points to C:\Program Files\AppName\bin\AppName.exe and you wish to copy all the files in C:\Program Files\AppName, it would be set to 2: one to remove the file name AppName.exe and one to remove the 'bin' directory from the path.

CopyFromDirectory is used to indicate the local directory to copy into the portable app. If used in conjunction with the registry entries above, it will be used as a fallback if the registry entry is missing or doesn't point to a valid path. This entry is normally in the form %PROGRAMFILES%\AppName. Several environment variables are available including: %PROGRAMFILES%, %COMMONFILES%, %DESKTOP%, %WINDIR%, %SYSDIR%, %APPDATA%, %LOCALAPPDATA% and %TEMP%.

CopyToDirectory indicates the relative path within the portable app that the files will be copied to. This is usually in the form App\AppName. If the directory does not exist, it will be created.

Within the optional [DownloadFiles] section:

This section is used to download and optionally extract files from the internet.

DownloadURL specifies the URL to the file that will be downloaded. It is normally in the form http://example.com/path/filename

DownloadName is the name that will be displayed while the file is downloaded. This must be a valid DOS name and should not include special characters like :, ", \, etc.

DownloadFilename is the name of the file that will be used while it is worked with locally. This should normally be the same as the filename from the DownloadURL. It is normally in the form filename.exe or filename.zip.

DownloadMD5 is used to specify the MD5 hash of the file downloaded. This allows the installer to verify that the file has not changed since the installer was created. Use of this entry is *highly* recommended.

DownloadTo is optionally used if the downloaded file should just be copied into the portable app as-is. The entry is normally in the form App\AppName. This entry is not to be used with the extraction entries that follow.

AdditionalInstallSize is used to specify the size of the files that will be added to the files contained within the installer. The entry should be a number only and be in KB

(DEPRECATED) Extract1To and Extract1File are used for simple extraction of files from ZIP files only. The Extract#To entries should specify the relative path to where the files will go within the installed portable app (typically App\AppName). The Extract#File is used to specify the name of the file to extract. No wildcards are permitted. Up to 10 entries in the form Extract1To/Extract1File, Extract2To/Extract2File may be made. Extract#To supports the use of <ROOT> to indicate the app's root directory. Deprecated Note: ExtractTo and ExtractFile have been deprecated in favor of AdvancedExtractTo and AdvancedExctractFilter. The methods used for ExtractTo are not fully compatible with non-ANSI directory names. This functionality remains for this version of the PA.c Format for compatibility reasons. Applications will be automatically converted to the new method in a later release.

AdvancedExtract1To and AdvancedExtract1Filter are used for more advanced extraction from ZIP files as well as many installer EXEs. The AdvancedExtract#To entries should specify the relative path to where the files will go within the installed portable app (typically App\AppName). The AdvancedExtract#Filter entries are used to specify a filter for the files to be extracted and are in the same format used by 7-zip. Some examples include *.txt for all text files, * for all files, *a* for files that contain the letter a, Src\*.cpp for all cpp files within the src directory, etc. ** can be used to indicate all files in the archive recursively (including sub-directories). Up to 10 entries can be made. AdvancedExtract#To supports the use of <ROOT> to indicate the app's root directory.

DoubleExtractFilename is used when a downloaded file contains an archive within an archive. The DoubleExtractFilename should be set to the name of the archive inside the archive. For example, if you are downloading a file called setup.exe which contains a file data.zip that has the files needed within it, DoubleExtractFilename would be set to data.zip. The DoubleExtract#To and DoubleExtract#Filter are performed on the extracted archive and are in the same format as AdvancedExtract1To and AdvancedExtract1Filter above. Up to 10 entries may be used. DoubleExtract#To supports the use of <ROOT> to indicate the app's root directory.

Within the optional [Languages] section:

Each entry is used to specify whether that language is available as a user is installing the portable app and appinfo.ini is set to Multilingual. If this section is omitted, all languages are included. If this section is included, ENGLISH= is required. All other languages are optional and default to false.

Within the optional [DirectoriesToPreserve] section:

This section specifies directories that will be preserved even if a given directory (App, Data, Other) is set to be removed on an upgrade. Up to 10 entries in the form of PreserveDirectory1, PreserveDirectory2, etc are available. Each should be in the relative paths within the app. If you wish to preserve the directory App\AppName\plugins, it would be entered as PreserveDirectory1=App\AppName\plugins within this section. If no directories need preserving, this section should be omitted.

Within the optional [DirectoriesToRemove] section:

This section specifies directories that will be removed even if a given directory (App, Data, Other) is set not to be removed on an upgrade. Up to 10 entries in the form of RemoveDirectory1, RemoveDirectory2, etc are available. Each should be in the relative paths within the app. If you wish to remove the directory App\AppName\locales, it would be entered as RemoveDirectory1=App\AppName\locales within this section. If no directories need removing, this section should be omitted.

Within the optional [FilesToPreserve] section:

This section specifies files that will be preserved even if a given directory (App, Data, Other) is set to be removed on an upgrade. Up to 10 entries in the form of PreserveFile1, PreserveFile2, etc are available. Each should be in the relative paths within the app. If you wish to preserve the files App\AppName\*.hlp, it would be entered as PreserveFile1=App\AppName\*.hlp within this section. If no files need preserving, this section should be omitted.

Within the optional [FilesToRemove] section:

This section specifies files that will be removed even if a given directory (App, Data, Other) is set not to be removed on an upgrade. Up to 10 entries in the form of RemoveFile1, RemoveFile2, etc are available. Each should be in the relative paths within the app. If you wish to remove the files App\AppName\*.lang, it would be entered as RemoveFile1=App\AppName\*.lang within this section. If no files need removing, this section should be omitted.

An End User License Agreement (EULA) or other licensing file can be displayed in the PortableApps.com Installer by including an EULA.txt or EULA.rtf file in the Other\Source directory. The PortableApps.com Installer will automatically locate it and configure it for use. Please ensure that the license is in Unicode format and not ANSI.

Custom Code may be included with your installer by including a file called PortableApps.comInstallerCustom.nsh within the Other\Source directory. This file is coded in NSIS and can include 3 macros: CustomCodePreInstall (which is run before installation), CustomCodePostInstall (which is run after installation) and CustomCodeOptionalCleanup (which is run at the beginning of installation if the optional section of an installer is not selected, intended for use in app upgrades when the existing app may have had the optional section included). In addition to the standard NSIS functions, the following NSIS features are available: ConfigRead, ConfigReadS, ConfigWrite, ConfigWriteS, GetParent, GetRoot, VersionCompare and the LogicLib features of NSIS. Please ensure that the file is Unicode encoded (not ANSI/DOS).

The PortableApps.com Installer code itself should not be altered directly within the confines of it being a PortableApps.com Installer. As always, the source code is available under the GPL and may be freely modified and used in other GPL-licensed works.

Every release of an app in PortableApps.com Format must use the current PortableApps.com Installer. If a larger application is being compiled that has a longer development and testing time, and a new version of the PortableApps.com Installer is released during testing of a release the version of the installer the app is currently using may be kept provided that the new Installer version is less than 30 days old on the day the application using the older version is released.

AdminДата: Вторник, 07.12.2010, 22:09 | Сообщение # 8
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
6. Изменения в ОС и Портативность

Во время работы портативных приложений разрешается изменять записи реестра и файлы на локальном диске, однако реестр и локальные файлы должны быть возвращены в их исходное состояние при выходе. Это может потребовать резервное копирование, а затем восстановление локальной копии (либо реестра или APPDATA) приложения при запуске и выходе. Портативные приложения должны продолжать работать (настройки и предпочтения сохраняться, выбор языка сохраняться), при изменении буквы диска, т.к. устройство перемещается между компьютерами. Список недавно использовавшихся приложений (MRU) должен продолжать работать.

AdminДата: Вторник, 07.12.2010, 22:09 | Сообщение # 9
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
7. Установка плагинов

Перевод Google!

В дополнение к стандартным инсталляторов, PortableApps.com установки могут быть использованы для плагина инсталляторов Чтобы добавить файлы в портативных приложений. Это достигается с помощью файла с именем plugininstaller.ini в каталоге Другие \ Source. Этот файл может содержать все записи в appinfo.ini и installer.ini файлы, описанные выше, объединены в один файл. Один того, чтобы файл находится в пределах [Подробнее] раздел, где запись под названием PluginName = сделано. Это должно быть имя плагина, например: Adobe Flash для Firefox Portable. [MainDirectories] вариантов удаления всех по умолчанию ложных плагин инсталляторов. Если лицензионное соглашение необходимо для плагина, а не EULA.txt или EULA.rtf, файлы PluginEULA.txt или PluginEULA.rtf должен быть использован.

Чтобы создать плагин установки, создать структуру директорий похожие на портативные приложения, что плагин используется в том числе с App, App \ AppName, данных, Другие, и т.д. каталогов. Тогда место только файлы, которые будут включены в плагин установки в соответствующее место. App \ AppInfo каталог должен быть пустым, как она используется только основные приложения. Любой пользовательский код должен быть в файле с именем PortableApps.comInstallerPluginCustom.nsh. Наконец, создайте файл с plugininstaller.ini записи, которые, как правило, в appinfo.ini и installer.ini выше и собрать, как обычно.

Кроме того, установки CommonFiles, которые установят на X: \ PortableApps \ CommonFiles можно путем добавления записи PluginType = CommonFiles в разделе подробно. Это для отдельных плагинов, которые используются несколько приложений (Java, например), как установлено PortableApps.com. В этом случае [MainDirectories] удаление опции для приложения установлен верно по умолчанию и удалит все X: \ PortableApps \ CommonFiles \ AppID каталоге (который обычно используется для плагинов CommonFiles.

AdminДата: Четверг, 06.01.2011, 17:35 | Сообщение # 10
Сержант
Группа: Администраторы
Сообщений: 22
Репутация: 1
Статус: Offline
8. История версий

2010-08-01: 2.0: Added AppComactor.ini

2010-06-14: 2.0: Added Armenian to supported languages and updated ExtractTo to be clear it has been deprecated.

2010-06-03: 2.0: Added OptionalSectionInstalledWhenSilent, 128px PNG icons, 11 languages, full Unicode support, Operating System category removed, Security category added.

2010-02-26: a few minor spelling and grammar fixes.

2009-11-19: 1.0: Added Dependencies, general cleanup.

2009-06-21: 0.91: Added CommonFiles installers, ability to extract full directory structures recursively.

2009-06-21: 0.91: Added Esperanto.

2009-06-11: 0.91: Added plugin installer details.

2009-05-28: 0.91: Added CopyLocalFiles and DownloadFiles to installer.ini. Added PNG icons.

2009-05-15: 0.90: Updated to new automated PortableApps.com Installer. New appinfo.ini and installer.ini configs.

2009-02-12: DRAFT 4: Added Education category and clarified installer modification notes.

2008-08-05: DRAFT 3: Added Vista 256px icon (optional) and updated PortableApps.com Installer notes.

2008-05-01: DRAFT 2: Added DefaultData description as we use it in many apps and the installer will be supporting it as well (handy for language setups) and the fact that the Data directory must be recreated by the app if missing, which is new but done by all released apps but one.

Форум » Portable Soft » Создание портативных приложений » PortableApps.com Format™ 2.0 (2010-08-01) (Спецификация PortableApps.com Format)
  • Страница 1 из 1
  • 1
Поиск: