分享

用PAL制作便携软件(六)

 学就对了 2019-02-27

本文根据PortableApps.com相关文档及自身使用经历翻译并整理,更多内容欢迎访问我的博客http://,转载请注明出处,谢谢!

PortableApps.com Installer从前面提到的appinfo.ini文件以及可选的installer.ini文件中获取其需要的配置信息,其中installer.ini文件也位于AppInfo目录中。

installer.ini文件允许对应用程序的安装过程进行详细的设置,也可以设置其他可选内容。

installer.ini包括:(请注意,此示例仅用于说明可能的选项,使用时请自行筛选。整个installer.ini是可选的。如果省略,则将替换App和其他目录,并且安装程序将是单一语言(在appinfo.ini中指定)或多语言,并包括所有支持的语言。安装程序的源代码不会包含在内。)

[CheckRunning]区段(可选):

CloseEXE(可选):允许您分配自定义EXE以检查升级时间。如果EXE与appinfo.ini中Control-Start选项中指定的EXE相同,则应从installer.ini中省略此条目。如果您不想检查是否有任何正在运行,您可以设置CloseEXE = NONE(使用大写),但这应该谨慎,因为用户可能会尝试在运行时升级您的应用程序。

CloseName(可选):允许您为升级时将关闭的内容指定其他名称。如果名称与appinfo.ini中指定的便携式应用程序的名称相同,则应从installer.ini中省略此条目。


[Source]区段(可选):

IncludeInstallerSource(可选):允许您将PortableApps.com安装程序的源包含在便携式应用程序中,方法是将其设置为true。


[MainDirectories]区段(可选):

RemoveAppDirectory,RemoveDataDirectory和RemoveOtherDirectory(可选):允许您通过在现有应用程序上安装新版本的应用程序来指定在升级时是删除还是保留这些目录。默认情况下,将删除App和Other目录,并保留Data目录。如果您希望使用这些默认值,则应省略installer.ini的此部分。(请注意,您可以保留下面的特定目录和文件)


[OptionalComponents]区段(可选):

OptionalComponents:设置为true时,这使安装程序具有可选部分。这通常用于在应用程序中安装其他语言。

MainSectionTitle(可选):指定将为安装程序的第一部分显示的名称。默认情况下,它将从appinfo.ini读取AppName Portable,读取“AppName Portable(English)[Required]”。如果您对默认值满意,则应省略此条目。

MainSectionDescription(可选):指定将为安装程序的第一部分显示的说明。默认情况下,它将显示为“安装便携式应用程序”。如果您对默认值满意,则应省略此条目。

OptionalSectionTitle(可选):指定将为安装程序的第二个/可选部分显示的名称。默认情况下,它将显示“其他语言”。如果您对默认值满意,则应省略此条目。

OptionalSectionDescription(可选):指定将为安装程序的第二个/可选部分显示的描述。默认情况下,它将显示“为此应用添加多语言支持”。如果您对默认值满意,则应省略此条目。

OptionalSectionSelectedInstallType(可选):指定将写入appinfo.ini的InstallType,如果用户使用可选部分安装应用程序,则显示在PortableApps.com平台中。默认情况下,它将显示为“多语言”。如果您对默认值满意,则应省略此条目。

OptionalSectionNotSelectedInstallType(可选):指定将写入appinfo.ini的InstallType,如果用户安装不带可选部分的应用程序,则显示在PortableApps.com平台中。默认情况下,它将显示为“英语”。如果您对默认值满意,则应省略此条目。

OptionalSectionPreSelectedIfNonEnglishInstall(可选):指定在用户选择以非英语语言运行安装程序时是否默认选择可选节。默认值为true。如果您对默认值满意,则应省略此条目。

OptionalSectionInstalledWhenSilent(可选):指定当从平台的应用程序安装程序启动时,安装程序以静默方式运行时是否安装了可选节。当可选组件不是其他语言时,此条目默认为true。

OptionalDirectory1:允许您指定哪些目录是安装程序的可选部分的一部分。OptionalDirectory1和更高版本可供使用。路径应该是相对的。因此,如果您希望安装程序的可选部分的目录App \ AppName \ locales部分,则在此部分中设置OptionalDirectory1 = App \ AppName \ locales。

OptionalFile1:允许您指定哪些特定文件是安装程序的可选部分的一部分。OptionalFile1和更高版本可供使用。路径应该是相对的。因此,如果您想要安装程序的可选部分的文件App \ AppName \ * .lang是您在本节中设置OptionalFile1 = App \ AppName \ * .lang。

可选部分注意:必须使用OptionalDirectory1或OptionalFile1指定包含在安装程序可选部分中的文件(如果有)。


[CopyLocalFiles]区段(可选):此部分用于从应用程序的本地安装中复制文件。

CopyLocalFiles:用于指示此部分已启用。它应该设置为true。

CopyFromRegPath:在注册表中的键中指示本地文件的路径时,将使用CopyFromRegPath。通常,这将采用HKLM \ Software \ AppName的形式。

CopyFromRegKey与CopyFromRegPath一起使用。它指示应该使用上面的注册表路径中的密钥。

CopyFromRegRemoveDirectories:用于指示要从Key读入的目录数量,以到达应该复制的目录。如果Key指示文件而不是目录的路径,则应将其增加1。例如,如果Key通常指向C:\ Program Files \ AppName \ bin \ AppName.exe,并且您希望复制C:\ Program Files \ AppName中的所有文件,则将其设置为2:one以删除文件名AppName.exe和一个从路径中删除'bin'目录。

CopyFromDirectory:用于指示要复制到便携式应用程序的本地目录。如果与上面的注册表项一起使用,如果注册表项缺失或未指向有效路径,则它将用作后备。此条目通常采用%PROGRAMFILES%\ AppName格式。有几个环境变量可用,包括:%PROGRAMFILES%,%COMMONFILES%,%DESKTOP%,%WINDIR%,%SYSDIR%,%APPDATA%,%LOCALAPPDATA%和%TEMP%。

CopyToDirectory:指示便携式应用程序中文件将被复制到的相对路径。这通常采用App \ AppName的形式。如果该目录不存在,则将创建该目录。


[DownloadFiles]区段(可选):

此部分用于从Internet下载和选择性地提取文件。

AdditionalInstallSize:用于指定将添加到安装程序中包含的文件的文件的大小。该条目应仅为数字,并且以KB为单位DownloadURL指定要下载的文件的URL。

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

DownloadURL:它通常采用http:///path/filename格式

DownloadKnockURL:指定在下载DownloadURL指定的文件之前必须下载的URL。

DownloadName:是下载文件时将显示的名称。这必须是有效的DOS名称,不应包含特殊字符,如:,“,\等。

DownloadFilename:是在本地使用时将使用的文件的名称。这应该与DownloadURL中的文件名相同。它通常采用filename.exe或filename.zip的形式。

DownloadMD5:用于指定下载文件的MD5哈希值。这允许安装程序验证自创建安装程序后文件未更改。*高度推荐使用此条目。

DownloadTo:如果下载的文件应该按原样复制到便携式应用程序中,则可以选择使用DownloadTo。该条目通常采用App \ AppName格式。此条目不能与后面的提取条目一起使用。

DownloadCachedByPAc:用于在PortableApps.com缓存实时下载时向PortableApps.com平台指示。安装程序本身不会使用缓存,但会在通过PortableApps.com平台的App Store安装或更新时使用。

AdvancedExtract1To和AdvancedExtract1Filter:用于从ZIP文件以及许多安装程序EXE进行更高级的提取。AdvancedExtract #To条目应指定文件在已安装的便携式应用程序中的相对路径(通常为App \ AppName)。AdvancedExtract #Filter条目用于指定要提取的文件的过滤器,其格式与7-zip使用的格式相同。一些示例包括所有文本文件的* .txt,所有文件的*,* a *用于包含字母a的文件,sc目录中所有cpp文件的Src \ * .cpp等。**可用于指示递归中存档中的所有文件(包括子目录)。最多可以输入10个条目。AdvancedExtract#支持使用<ROOT>指示应用程序的根目录。

请注意,在将较旧的PA.c格式应用程序编译为较新格式时,已弃用的Extract1To等配置会自动转换为AdvancedExtract1To等配置

当下载的文件包含存档中的存档时,将使用DoubleExtractFilename。DoubleExtractFilename应设置为存档内的存档名称。例如,如果要下载名为setup.exe的文件,该文件包含其中包含所需文件的文件data.zip,则DoubleExtractFilename将设置为data.zip。DoubleExtract#To和DoubleExtract#Filter在提取的存档上执行,格式与上面的AdvancedExtract1To和AdvancedExtract1Filter相同。最多可使用10个条目。DoubleExtract#支持使用<ROOT>指示应用程序的根目录。

Download2URL,Download2KnockURL,Download2Name,Download2Filename,Download2MD5,Download2To,Download2CachedByPAc:用于第二个可下载文件的目的与没有2的对应文件相同。

Download2AdvancedExtract1To,Download2AdvancedExtract1Filter,Download2DoubleExtractFilename,Download2DoubleExtract1To,Download2DoubleExtract1Filter:为第二个可下载文件服务的目的与上面的对应文件相同,没有Download2前缀。

如果需要在自定义代码中从命令行调用7z.exe,可以将CustomCodeUses7zip设置为true。请注意,如果设置了AdvancedExtract1To,DoubleExtract1To,Download2AdvancedExtract1To或Download2DoubleExtract1To,则会自动包含7z。


[Languages]区段(可选):

每个条目用于指定当用户正在安装便携式应用程序时该语言是否可用,并且appinfo.ini设置为Multilingual。如果省略此部分,则包括所有语言。如果包含此部分,则至少需要ENGLISH =。所有其他语言都是可选的,默认为false。

[DirectoriesToPreserve]区段(可选):

此部分指定即使在升级时将某个给定目录(App,Data,Other)设置为要删除的目录也将保留。最多可以使用PreserveDirectory1,PreserveDirectory2等形式的10个条目。每个应该在应用程序内的相对路径中。如果您希望保留目录App \ AppName \ plugins,则会在此部分中将其作为PreserveDirectory1 = App \ AppName \ plugins输入。如果没有目录需要保留,则应省略此部分。


[DirectoriesToRemove]区段(可选):

此部分指定即使在升级时不删除给定目录(App,Data,Other)也将删除的目录。最多可以使用RemoveDirectory1,RemoveDirectory2等形式的10个条目。每个应该在应用程序内的相对路径中。如果要删除目录App \ AppName \ locales,则会在此部分中将其作为RemoveDirectory1 = App \ AppName \ locales输入。如果不需要删除目录,则应省略此部分。


[FilesToPreserve]区段(可选):

此部分指定即使在升级时将某个目录(App,Data,Other)设置为删除,也将保留的文件。最多可提供10个PreserveFile1,PreserveFile2等形式的条目。每个应该在应用程序内的相对路径中。如果您希望保留文件App \ AppName \ * .hlp,则在本节中将其作为PreserveFile1 = App \ AppName \ * .hll输入。如果没有文件需要保留,则应省略此部分。


[FilesToRemove]区段(可选):

此部分指定即使在升级时除了给定目录(App,Data,Other)外将删除的文件。最多可以使用RemoveFile1,RemoveFile2等形式的10个条目。每个应该在应用程序内的相对路径中。如果您希望删除文件App \ AppName \ * .lang,它将在此部分中作为RemoveFile1 = App \ AppName \ * .lang输入。如果不需要删除文件,则应省略此部分。

通过在App \ AppInfo目录中包含EULA.txt文件,可以在PortableApps.com安装程序中显示最终用户许可协议(EULA)或其他许可文件。PortableApps.com安装程序将自动定位并配置它以供使用。请确保许可证是Unicode格式而不是ANSI格式。

通过在Other \ Source目录中包含名为PortableApps.comInstallerCustom.nsh的文件,安装程序可能包含自定义代码。

此文件在NSIS中编码,可包含3个宏:CustomCodePreInstall(在安装前运行),CustomCodePostInstall(在安装后运行)和CustomCodeOptionalCleanup(如果未选择安装程序的可选部分,则在安装开始时运行),当现有应用程序可能包含可选部分时,旨在用于应用程序升级。除了标准的NSIS功能外,还提供以下NSIS功能:ConfigRead,ConfigReadS,ConfigWrite,ConfigWriteS,GetParent,GetRoot,VersionCompare和NSIS的LogicLib功能。请确保该文件是Unicode编码(不是ANSI / DOS)。

PortableApps.com安装程序代码本身不应在其作为PortableApps.com安装程序的范围内直接更改。与往常一样,源代码在GPL下可用,可以自由修改并在其他GPL许可的作品中使用。

PortableApps.com格式的应用程序的每个版本都必须使用当前的PortableApps.com安装程序。如果正在编译具有更长开发和测试时间的更大应用程序,并且在测试发布期间发布了新版本的PortableApps.com安装程序,则可以保留应用程序当前正在使用的安装程序版本,前提是新版本在发布使用旧版本的应用程序的当天,安装程序版本不到30天。

PortableApps.com安装程序将在AppInfo目录中存储的名为pac_installer_log.ini的文件中记录有关安装程序生成和实际应用程序安装的信息。应通过适当的gitignore配置从git存储库中排除此文件。日志文件中的详细信息包括安装程序是否已运行,创建安装程序包的时间,应用程序实际安装的时间,用于生成安装程序的安装程序向导的版本,安装程序运行时的安装程序版本,以及将来可能添加的其他日志信息。除官方PortableApps.com安装程序外,不得更改或删除此文件。便携式应用程序可以利用此文件来跟踪安装时间和正确的安装方法。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多