Inno Setup的使用。这个是来自程序自己有使用帮助。这一部分到Setup section。这个也是东西最多的section。现在都还只是翻译,以后会增加相应的效果。
Inno setup
用iss后缀的script(脚本)文件来制作安装包,是.exe的。而script中,各个部分被组织在各个section里面。
虽然section有很多,但是它们都可以归为两类。
一类如setup section一样是包含目的名(英文为directive name就当作变量吧。)和它对应的值。
e.g. AppName=My Program
一类如 files section一样,包含了很多parameters(参数)。每个parameter都由是这样的形式“name:value”如果一行有多个parameter,用“;”来隔开。
里面非常重要的是constant(常量),可以帮助我们利用系统环境来简化事情。这个具体先不说,这个可以在用到的时候再去查。
现在按照section来说
1、setup
这个是最主要的section,和你程序相关的大部信息在这个程序的entry(入口,其实就是那个directive name)里面设置,数目相当多。这些entries可以分为三类。
Complier-related(和编译器相关),就是生成你的exe文件的各种选项。
Compression:这个定义了生成时应该怎样压缩文件,种类自查,默认为lzma2/max
e.g. compression=lzma2/max 后面的都是这个形式,就不再举例了
compressionThread:这个定义了是不是能用多处理器,auto是默认项,这个可以不用设置。
DiskClusterSize:这个是设置硬盘的一个簇的大小,默认512。这个可以用DiskSpanning entry来忽略。现在有4K硬盘了,也许是为了这个目的?
DiskSliceSize:在inno setup里面,一个slice的最大bytes数为2100000000,差不多2G,最小值为262144。如果你安装文件相当大,如有10G那么就要分一下了。它和SlicesPerDisk来配套使用。如果是10G,只要DiskSliceSize在范围内,同时两个相乘是10G就行了。
DiskSpanning:这个默认是no,如果是yes的话就会将数据分在几个bin文件中,这个不影响安装。如果安装文件超过2100000000后,这个必须yes。
Encryption:安装文件中的东西会被加密,Password必须设置,因为加密是从Password值来生成的。ARCFOUR encrytion。默认是no
InternalCompressLevel:这个默认就行,默认是normal。也可以设成lzma 的方法。这个是对安装文件内部结构进行压缩,一般没有什么必要来设置。
LZMAAlgoritthm:控制lzma和lzma2的算法。这个不用设置。
LZMABlockSize:默认是4*LZMADictionarySize,范围是1024到262144。用默认就好
LZMADictionarySize:这个用默认。
LZMAMatchFinder: HC或者BT。BT压缩慢但是比率要高一些。用默认。
LZMANumBlockThreads:用默认,只是会在压缩大文件的时候会慢一点。默认下只会用到一个进程,最高可以有32个进程。
LZMANumFastBytes:用默认。没有什么必要,都是速度和性能的选择,对于小程序没有什么影响。
LZMAUseSeparateProcess:可用 的值 有yes,no或者x86。要给压缩分大大的内存就要设置这个。我用默认就行了。
MergeDuplicateFiles:融合相同的文件,默认为yes。
OutputBaseFilename:默认是setup。这个是安装文件的名字。可以在生成之后手动重命名,不是很重要。
OutputDir:默认是在iss文件目录下生成output文件夹,可以自己设置生成位置。
OutputManifestFile:这个不错,显示了包含的源文件。生成在OutputDir中
e.g. OutputManifestFile=Setup-Manifest.txt
ReserveBytes:指定安装计算机上需要多预留的空间。这个是因为安装包里面不可以每个都会和程序有关,如readme.txt。默认是0。
SignedUninstaller:这个用默认就行,在SignTool里面设置。
SlicesPerDisk:1到26,默认为1.
SignedUninstallerDir:这个不用设置,用默认的OutputDir就行。
SignTool:用来指定安装文件(以及卸载文件)的签名。这个之后再补,现在还不知道签名是怎么回事。
SolidCompression:所有的文件都一次压缩,而不是分开处理。用默认就好,现在还没有这个需求。
SourceDir:给Files section里面的source parameter 指定值。
TerminalServicesAware:这个用默认,只是为了取得真实的WINDOWS路径。
UseSetupLdr:当我知道这个还应该有个调试环节的时候再来搞这个选项。用默认
VersionInfoCompoany:设置安装包的公司名……无用。用默认是AppPublisher的值。
VersioninfoCopyright:
VersionInfo|Description:
VersionInfoProductName:
VersionInfoProductTextVersion:
VersionInfoProductVersion:
VersionInfoTextVersion:
VersionInfoVersion:0.0.0.0这个样子的东西。
Installer-related安装相关。影响安装和卸载。
AllowCancelDuringInstall:默认为yes,可以在安装的时候取消。
AllowNetworkDrive:默认是yes,如果是no,用户在选择安装位置的时候不能选择网络位置安装。
AllowNolcons:默认是no,选择yes会在安装过程中允许用户不在开始菜单文件夹中创建图标。和Icon section有关系。
AllowRootDirectory:默认是no,不允许在安装目录选择环节选择任何根目录。
AllowUNCPath:默认是yes,如果是no,助记词不能输入UNC path(如:\\server\share)这个和AllwoNetworkDrive相关。
AlwaysRestart:默认是no。如果是yes,安装完以后就会叫用户去重启电脑。
AlwaysShowComponentsList:默认是yes。这个要和custom type配合,允许用户在安装的过程中自定义安装。
AlwaysShowDirOnReadyPage:默认是no。如果是yes,在安装过程中的Ready to Install wizard页面会显示选择的安装目录。
AlwaysShowGroupOnReadyPage:默认是no。同上,这个显示是开始菜单中创建的名字。
AlwaysUsePersonalGroup:默认是no。一般是{group}这个常量是指向all user这个文件夹的,前提用户是有管理员权限。如果设置了yes那么问题只用当前用户的。
AppendDefaultDirName:默认是yes。就是在用户自己改变了安装目录之后也会把DefaultDirName添在最后。(DefaultDirName在哪里设?)
AppendDefaultGroupName:默认是yes。这个和上面的entry是一样的,涉及到DefaultGroupName。
AppComments:在“删除/改变程序面板”中的“souport”对话框中显示,包含常量。
AppContact:同上,显示在同一个对话框中。
AppId:这个用默认是AppName entry的值。这个一般不用更改吧。会影响卸载。不过如果是考虑到升级后AppName会不同的话,这个AppId还是自己设置一下才行。搞明白一点就是,同一个程序,就算版本不一样,这个AppId必须一样,不然会影响卸载,不能正常卸载。
AppModifyPath:添加修改路径,这个会在控制面板“删除程序”中出现修改的选项。
e.g. AppModifyPath=”{app}\Setup.exe” /modify=1不知道这个/modify=1到底是什么意思
AppMutex:会阻止用户在当前程序还在运行程序实例的时候安装,这个需要在源代码中的开始位置添加mutex。如C中CreateMutex(NULL, FALSE, "MyProgramsMutexName");
AppName:程序的名字,不要带版本号。版本相关的东西可以在AppVersion或者AppVerName中设置。它是AppId,VersionIfoDescription,VersionInfoProductName的默认值。
AppPublisher:在“删除/改变程序面板”中的“souport”对话框中显示,包含常量。
AppPublisherURL:同上。
AppReadmeFile:可以是一个URL。
AppSouportPhone:同上上
AppSouportURL:同上
AppUpdatesURL:同上
AppVerName:这个用默认的就行。
AppVersion:如果这个不设置的话就要手动设置上面的entry了。
ArchitecturesAllowed:默认是允许所有32位的。当然是根据你程序的代码来最好了。可以设置多个,用空格格开。如 x86 x64 ia64等等。
ArchitecturesInstallIn64BitMode:默认是空白。作用指定64位处理器,和上一个要一样。
ChagesAssociations:默认是no。在安装我卸载后会刷新程序的文件关联。
ChangesEnvironment:默认是no。如果程序改变了环境变量了要设置成yes。在安装完成之后会通知其它在运行的程序重新从注册表中载入它们的环境变量。
CloseApplications:默认是yes。这个关键是检查Files section和InstallDelete section中的文件是不是被占用了。如果是安装程序被指定为安静模式,不会有提示;否则会提示用户去关闭相应程序。这里要搞明白slient在哪里设置
CloseApplicationFilter:设置哪些文件需要检查,和上一个entry相关。用“,”隔开。
e.g. *.exe,*.dll
CreateAppDir:默认是yes。No的话不会在安装过程中让用户来选择安装目录。程序会直接安装到window文件夹。
CreateUnistallRegKey:默认是yes。如果是no,在控制面板里面不会找到该程序,呵呵。可以配合安装过程中选择移动模式。
DefaultDialogFontName:对话框的默认字体,如果用户的系统没有的话会用8-point的Microsoft sans serif或者MS Sans Serif。当然前提是在languageoption section 中没有设置。
DefaultDirName:默认的安装位置。这个要和constant中的变量配合。当然如果有老版本的话会默认安装在已有的目录中。这个是因为UsePreviousAppDir的默认值是yes。
DefaultGroupName:默认的开始菜单中的名字。这个要设置
DefaultUserInfoName:在用户信息中的默认的名字。默认值是{sysuserinfoname}。DefaultUserInfoOrg:同上,默认的组织。
DefaultUserInfoSerial:同上默认的序列号?可以试试。
DirExistsWarning:默认值是auto。这个不用管。
DisableDirPage:默认值是no。如果是yes就不会出现安装目录选择的页面。呵呵。这个设置成auto也不错。
DisableFinishedPage:默认值是no。如果是yes,安装完以后自动退出安装对话框。如果重启或者InfoAfterFile被设置。这个
DisableProgramGroupPage:默认值是no。这个是显示开始菜单页面。这个
DisableReadyMemo:默认值是no。这个看看就知道是个什么东西了。这个
DisableReadyPage:默认是no。会显示Ready to Install wizard页面。这个要试试
DisableStarupPromptL:默认值是yes。会在安装前出来一个对话框让用户确认安装。这个可以被UserSetupLdr忽略掉。
DisableWelcomePage:默认值是no。这个可以试试
EnableDirDoesntExistWarning:默认值是no。如果是yes,在用户输入的文件夹不存在的时候会出来一个消息框提示。一般来说,也可以DirExistWarning=no这个可以试试
ExtraDiskSpaceRequired:默认值是0。一般安装向导里面显示的大小是Files里面文件的总和。如果你想显示多一点,不管出于什么样的心态,可以 在这里设置。单位是byte。
InfoAfterFile:这个指定了readme文件。只能是txt或者是rtf。这个在安装完成以后显示。如果在lanuageoption中给这个readme设置了语言,这个entry就会被忽略?!这个可以试试
InfoBeforeFile:同上,在用户选择安装目录之前显示。
LanguageDetectionMethod:默认值是uilanguage。可选还有locale,none。这个用默认就可以。不过可以看看locale是什么样子
LicenseFile:在用户选择安装目录之前,会有一个用户协议。必须在source directory中,不然就要用绝对路径。这个和readme一样,都是不能指定语言的,不过可以试试
MinVersion:默认是5.0。格式是major.minor。指定了最低的Windows的版本。Build numbers and/or service pack levels也会用到。
OnlyBelowVersion:默认值是0。这个和MiniVersion刚好相反,指定了不会运行的最低的Windows版本。
Password:安装开始输入的密码。这个和之前的那个encryption相关。
PrivilegesRequired:默认值是admin。还可以选none,poweruser,lowest。这个和windows的版本有关。Vista之后要UAC,之前要是administrator group的成员。这个用默认就好了。
RestartApplications:默认值是yes。在设置了CloseApplicatons了以后,这个会让关闭的程序重启。要调用RegisterApplicationRestart API 。
RestartNeededByRun:默认值是yes。这个现在还不是很懂。
SetupLogging:默认值是no。如果是yes,安装文件会创建log文件。
ShowLanguageDialog:默认值是yes。这个和languages section配合。会出来一个对话框让用户能选语言。这个可以试试。
ShowUndisplayableLanguages:默认值是no。这个用默认就行了。
TimeStampRounding:默认值是2。范围是0到60。什么是Time stamp?这个还要再看看。
TimeStampsInUTC:默认值是no。同上
TouchDate:默认值是current。也可以是none,yyyy-mm-dd。这个和time stamp有点关系。用默认就好了。
TouchTime:同上,默认值是current。
Uninstallable:默认是yes。也可以用bool表达式。Yes会提供自动卸载工具。
UnistallDisplayIcon:这个指定了在控制面板里的卸载程序中程序的图标。如果程序有多个图标,要用到后缀“,n”。
e.g. UninstallDisplayIcon={app}\MyProg.exe,1
UninstallDisplayName:这个名字显示在控制面板里面的程序卸载中。
UninstallDisplaySize:同上。
UninstallFilesDir:指定了卸载执行程序。
UninstallLogMode:默认append。
UninstallRestartComputer:默认是no。如果是yes,在卸载完成以后总是让用户重启电脑。
UpdateUninstallLogAppName:默认是yes。用新的AppName替换uninstall log中的appname字段。这个用一般用默认就行了。
UsePreviousAppDir:默认是yes。在安装的时候找已有的程序的安装目录,用这个作为默认安装目录。如果Uninstallable是no的话,这个没用。因为在注册表中没有它检查的entry。
UsePreviousGroup:默认是yes。同上。
UsePreviousLanguage:默认是yes。同上。注意这个不能改变语言选择对话框的语言。同是在AppId包含常量的时候,这个必须是no。
UsePreviousSetupType:默认是yes。同上。默认就好。
UsePreviousTasks:默认是yes。用之前相同的task,task是什么?
UsePreviousUserInfo:默认是yes。同上。
UserInfoPage:默认是no。如果是yes会让用户在安装的时候输入个人信息以及序列号。对于序列号,要用到CheckSerial 事件函数。在安静安装模式,这些中除了序列号都会跳过。这个可以试试
Cosmetic和安装程序外观有关。
AppCopyright:这个就是在底部显示一个Copyright。WindowVisible要设置成yes。这个要试试
BackColor:有一系统可用值。也可以用16位数来表示。如$bbggrr。用的rgb颜色模型。默认是Backcolor是clBlue,BackColor2是clBlack。
BackColor2:同上。
BackColorDirection:默认是toptobottom。还可以选lefttoright。这个是指定了颜色渐变的方向。
BackSolid:默认是no。如果是yes背景就用纯色,而不会用渐变。
FlatCoponentsListL:默认是yes。Checkbox用flat样式的,no的话用3d的。这个可以试试
SetupIconFile:安装文件的图标,必须在source目录中。不然就要用绝对路径。这个可以试试
ShowComponentSizes:默认是yes。在组件列表中显示组件的大小,由最大组件的大小决定单位是用KB还是用MB。 这个可以试试
ShowTasksTreeLines:默认是no。这个可以试试,看看是什么?
WindowShowCaption:默认是yes。这个用默认就好,可以试试效果。如果WindowVisible没有被设置成yes的话,这个无效。
WindowStartMaximized:默认是yes。如果是yes,background window显示为最大状态。这个可以试试
WindowResizable:默认是yes。可以改变窗口大小。
WindowVisible:默认是no。这个可以试试。
WizardImageBackColor:默认是$400000。这个和BackColor的取值范围一样。
WizarImageFile:默认值是compiler:WIZMODERNIMAGE.BMP。在安装程序的左边显示的图片。最大的像素是164*314。这个也是必须在source文件夹下面,不然就用绝对路径。
WzardImageStretch:默认是yes。会拉伸或者压缩图片。
WizardSmallImageFile:在安装程序右上角显示的图片。大小为55*58。注意事项同WizardImageFile。