Inno Setup 6、Advanced Installer、InstallMate
Inno Setup 6哪都好,就一个毛病,做好的安装包不支持XP...
Advanced Installer Architect官方版本15.9以前版本支持XP,16.0以后的版本不再支持XP系统。
InstallMate支持Windows xp操作系统。
注意:从 InstallMate 9.5开始,不再支持 win95~win2000 安装程序。有关详细信息,请参阅InstallMate 9.5 中的重大更改。InstallMate 9.4 的存档版本可供仍需要在这些平台上安装的客户下载。
***********************************************
https://docs.microsoft.com/zh-cn/windows/win32/msi/installation-context
下表比较了Windows Installer在按计算机或按用户安装上下文中安装软件包时使用的文件夹的位置。
表3
每台计算机的安装上下文(ALLUSERS = 1) 每用户安装上下文(ALLUSERS =“”)
DesktopFolder所有用户的Desktop文件夹的完整路径。
FOLDERID_PublicDesktop( CSIDL_COMMON_DESKTOPDIRECTORY)
DesktopFolder当前用户的Desktop文件夹的完整路径。
FOLDERID_Desktop( CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY)
ProgramMenuFolder所有用户的“程序菜单”文件夹的完整路径。
FOLDERID_CommonPrograms( CSIDL_COMMON_PROGRAMS)
ProgramMenuFolder当前用户的Program Menu文件夹的完整路径。
FOLDERID_Programs( CSIDL_PROGRAMS)
StartMenuFolder所有用户的“开始菜单”文件夹的完整路径。
FOLDERID_CommonStartMenu( CSIDL_COMMON_STARTMENU)
StartMenuFolder当前用户的Start Menu文件夹的完整路径。
FOLDERID_StartMenu( CSIDL_STARTMENU)
StartUpFolder所有用户的“启动”文件夹的完整路径。
FOLDERID_CommonStartup( CSIDL_COMMON_STARTUP)
StartUpFolder当前用户的“启动”文件夹的完整路径。
FOLDERID_Startup( CSIDL_STARTUP)
TemplateFolder所有用户的Templates文件夹的完整路径。
FOLDERID_CommonTemplates( CSIDL_COMMON_TEMPLATES)
TemplateFolder当前用户的Templates文件夹的完整路径。
FOLDERID_Templates( CSIDL_TEMPLATES)
AdminToolsFolder所有用户的Admin Tools文件夹的完整路径。
FOLDERID_CommonAdminTools( CSIDL_COMMON_ADMINTOOLS)
AdminToolsFolder当前用户的Admin Tools文件夹的完整路径。
FOLDERID_AdminTools( CSIDL_ADMINTOOLS)
AppDataFolder程序菜单文件夹的完整路径。
Windows Vista和更高版本:漫游文件夹的完整路径。
FOLDERID_RoamingAppData( CSIDL_APPDATA)
AppDataFolder程序菜单文件夹的完整路径。
Windows Vista和更高版本:漫游文件夹的完整路径。
FOLDERID_RoamingAppData( CSIDL_APPDATA)
CommonAppDataFolder包含所有用户的应用程序数据的文件夹的完整路径。
FOLDERID_ProgramData( CSIDL_COMMON_APPDATA)
CommonAppDataFolder包含所有用户的应用程序数据的文件夹的完整路径。
FOLDERID_ProgramData( CSIDL_COMMON_APPDATA)
收藏夹文件夹当前用户的“收藏夹”文件夹的完整路径。
FOLDERID_Favorites( CSIDL_FAVORITES)
收藏夹文件夹当前用户的“收藏夹”文件夹的完整路径。
FOLDERID_Favorites( CSIDL_FAVORITES)
PersonalFolder当前用户的“我的文档”文件夹或“个人”文件夹的完整路径。
Windows Vista和更高版本:当前用户的Documents文件夹的完整路径。
FOLDERID_Documents( CSIDL_PERSONAL)
PersonalFolder当前用户的“我的文档”文件夹或“个人”文件夹的完整路径。
Windows Vista和更高版本:当前用户的Documents文件夹的完整路径。
FOLDERID_Documents( CSIDL_PERSONAL)
SendToFolder SendTo文件夹的完整路径。
FOLDERID_SendTo( CSIDL_SENDTO)
SendToFolder SendTo文件夹的完整路径。
FOLDERID_SendTo( CSIDL_SENDTO)
FontsFolder系统字体文件夹的完整路径。
FOLDERID_Fonts( CSIDL_FONTS)
FontsFolder系统字体文件夹的完整路径。
FOLDERID_Fonts( CSIDL_FONTS)
ProgramFilesFolder的Windows的32位版本:该属性值是完整路径到Program Files文件夹的所有用户(例如,的%ProgramFiles%)。该文件夹的标识是 FOLDERID_ProgramFiles( CSIDL_PROGRAM_FILES)标识符 FOLDERID_ProgramFiles和 FOLDERID_ProgramFilesX86代表同一文件夹。所有用户都可以访问此文件夹中的文件。
Windows的64位版本:该属性值是为所有用户的程序文件(x86)文件夹(例如,的%ProgramFiles(x86)的%)。该文件夹的标识是完整路径 FOLDERID_ProgramFilesX86( CSIDL_PROGRAM_FILESX86。)所有用户都可以访问此文件夹中的文件。
ProgramFilesFolder Windows Server 2008 R2和Windows 7:该属性值为当前用户的Programs文件夹的完整路径(例如,%LocalAppData%\ Programs。)此文件夹的标识符为32位和64位的 FOLDERID_UserProgramFiles系统。FOLDERID_UserProgramFiles没有等效的CSIDL标识符。该文件夹中的文件只能由安装此文件夹的用户访问。
Windows Server 2008和更早版本以及Windows Vista和更早版本:没有基于用户的文件夹。该路径与每台计算机的上下文相同(例如,%ProgramFiles%或%ProgramFiles(x86)%。)所有用户都可以访问此文件夹中的文件。
CommonFilesFolder的Windows的32位版本:该属性值是完整路径Common Files文件夹的所有用户(例如,的%ProgramFiles%\ Common Files文件),该文件夹的标识是 FOLDERID_ProgramFilesCommon( CSIDL_PROGRAM_FILES_COMMON)标识符 FOLDERID_ProgramFilesCommon和 FOLDERID_ProgramFilesCommonX86代表相同的文件夹。所有用户都可以访问此文件夹中的文件。
Windows的64位版本:属性值是所有用户到Common Files文件夹的完整路径(例如,%ProgramFiles(x86)%\ Common Files。)此文件夹的标识符为 FOLDERID_ProgramFilesCommonX86(CSIDL_PROGRAM_FILES_COMMONX86。)所有用户都可以访问此文件夹中的文件。
CommonFilesFolder Windows Server 2008 R2和Windows 7:该属性值为当前用户的Common文件夹的完整路径(例如,%LocalAppData%\ Programs \ Common。)此文件夹的标识符为32位和64位上的 FOLDERID_UserProgramFilesCommon位系统。FOLDERID_UserProgramFilesCommon没有等效的CSIDL标识符。该文件夹中的文件只能由安装此文件夹的用户访问。
Windows Server 2008和更早版本以及Windows Vista和更早版本:没有基于用户的文件夹。该路径与每台计算机的上下文相同(例如,%ProgramFiles%\ Common Files或%ProgramFiles(x86)%\ Common Files。)所有用户都可以访问此文件夹中的文件。
ProgramFiles64Folder属性值是所有用户到Program Files文件夹的完整路径(例如,%ProgramFiles%。)此文件夹的标识符是 FOLDERID_ProgramFilesX64。没有与 FOLDERID_ProgramFilesX64等效的CSIDL标识符。这是64位组件的预定义文件夹,适用于64位系统。所有用户都可以访问此文件夹中的文件。
ProgramFiles64Folder Windows Server 2008 R2和Windows 7:该属性值为当前用户的Programs文件夹的完整路径(例如,%LocalAppData%\ Programs。)此文件夹的标识符为 FOLDERID_UserProgramFiles。FOLDERID_UserProgramFiles没有等效的CSIDL标识符。该文件夹中的文件只能由安装此文件夹的用户访问。
Windows Server 2008和更早版本以及Windows Vista和更早版本:没有基于用户的文件夹。该路径与每台计算机的上下文相同(例如,%ProgramFiles%。)所有用户都可以访问此文件夹中的文件。
CommonFiles64Folder该属性值是所有用户的Common Files文件夹的完整路径(例如,%ProgramFiles%\ Common Files。)这是64位组件的预定义文件夹,适用于64位系统。该文件夹的标识符是 FOLDERID_ProgramFilesCommonX64。没有与 FOLDERID_ProgramFilesCommonX64等效的CSIDL标识符。所有用户都可以访问此文件夹中的文件。
CommonFiles64Folder Windows Server 2008 R2和Windows 7:该属性值为当前用户的Common文件夹的完整路径(例如,%LocalAppData%\ Programs \ Common。)此文件夹的标识符为 FOLDERID_UserProgramFilesCommon。FOLDERID_UserProgramFilesCommon没有等效的CSIDL标识符。该文件夹中的文件只能由安装此文件夹的用户访问。
Windows Server 2008和更早版本以及Windows Vista和更早版本:没有基于用户的文件夹。该路径与每台计算机的上下文相同(例如,%ProgramFiles%\ Common Files。),所有用户均可访问此文件夹中的文件。
WindowsFolder Windows文件夹的完整路径。
FOLDERID_Windows( CSIDL_WINDOWS)
WindowsFolder Windows文件夹的完整路径。
FOLDERID_Windows( CSIDL_WINDOWS)
SystemFolder系统文件夹的完整路径。
FOLDERID_SystemX86( CSIDL_SYSTEMX86)
SystemFolder系统文件夹的完整路径。
FOLDERID_SystemX86( CSIDL_SYSTEMX86)
LocalAppDataFolder包含本地(非漫游)应用程序的文件夹的完整路径。
FOLDERID_LocalAppData( CSIDL_LOCAL_APPDATA)
LocalAppDataFolder包含本地(非漫游)应用程序的文件夹的完整路径。
FOLDERID_LocalAppData( CSIDL_LOCAL_APPDATA)
MyPicturesFolder图片或“我的图片”文件夹的完整路径。
FOLDERID_Pictures( CSIDL_MYPICTURES)
MyPicturesFolder图片或“我的图片”文件夹的完整路径。
FOLDERID_Pictures( CSIDL_MYPICTURES)
PrintHoodFolder PrintHood文件夹的完整路径。
FOLDERID_PrintHood( CSIDL_PRINTHOOD)
PrintHoodFolder PrintHood文件夹的完整路径。
FOLDERID_PrintHood( CSIDL_PRINTHOOD)
NetHoodFolder NetHood文件夹的完整路径。
FOLDERID_NetHood( CSIDL_NETHOOD)
NetHoodFolder NetHood文件夹的完整路径。
FOLDERID_NetHood( CSIDL_NETHOOD)
LatestFolder最近文件夹的完整路径。
FOLDERID_Recent( CSIDL_RECENT)
LatestFolder最近文件夹的完整路径。
FOLDERID_Recent( CSIDL_RECENT)
***********************************************
Inno Setup 6引入了许多更改:
托管和非托管安装模式
对管理安装模式功能和非管理安装模式功能进行了许多更改:
添加了新的“自动”常量,除非安装程序在非管理安装模式下运行,否则它们将自动映射为“普通”形式,在这种情况下,它们将映射为“用户”形式。我们建议您尽可能地更新脚本以使用这些“自动”常量,以避免出现错误。添加的“自动”常量列表为:{autoappdata},{autocf},{autocf32},{autocf64},{autodesktop},{autodocs},{autopf},{autopf32},{autopf64},{autoprograms}, {autoprograms},{autostartmenu},{autostartup},
更新了所有示例和Compiler IDE的“新脚本向导”,以使用{autopf}代替{pf},等等。
默认行为的更改:如果安装在非管理安装模式下运行,则“公用” shell文件夹常量不再映射到其“用户”形式。相反,他们只是返回请求的公共目录。受影响的“公共”常量列表包括:{commonappdata},{commondesktop},{commondocs},{commonprograms},{commonstartmenu},{commonstartup}和{} commontemplates。
{{PF}和{}已重命名为{commonpf}和{} commoncf。其中包括{pf32}至{commonpf32}等。仍然支持旧名称,但是建议将脚本更新为新名称,否则编译器将发出警告。
{} commonfavorites已被删除:Windows中不再存在此目录。
{userpf},{usercf}和{username}常量以及AlwaysUsePersonalGroup [Setup]指令现在可以正确触发正在使用的用户区域中的警告。
Pascal脚本更改:已删除GetShellFolder支持。由于已经建议了帮助文件,请改用ExpandConstant。
新添加了新的[Registry]部分根值HKA。在管理安装模式下等效于HKLM,否则等于HKCU。此外,还支持对{REG:...}常量和HKA32 / HKA64的支持。注意:HKA(例如HKCU)仅适用于与漫游配置文件兼容的设置。
使用[注册表]部分,不再建议使用根值HKCR。而是,将HKA的子项参数设置为“ Software \ Classes”。
Pascal脚本更改:添加了HKA和HKEY_AUTO常量。还支持HKA32,HKA64,HKEY_AUTO_32和HKEY_AUTO_64。
现在,编译器IDE的“新脚本向导”提供了一个选项,用于选择管理安装模式或非管理安装模式,以及可以在两种模式下使用的输出脚本。
Pascal脚本更改:添加了新的IsAdminInstallMode支持。
在帮助文件中添加了“非管理安装模式”主题。
覆盖覆盖安装模式
一旦脚本完全更新以支持管理和非管理安装模式(例如,通过使用新的“ auto”常量和新的[Registry]节根值HKA),您就可以使用以下命令:
新增加了[Setup]部分的新说明:PrivilegesRequiredOverridesAllowed,可以将其设置为一个或多个替代,以便最终用户可以覆盖脚本的默认PrivilegesRequired设置。支持以下替代方法:命令行和对话框。
如果允许覆盖命令行,则安装程序将支持两个附加的命令行参数以覆盖脚本的默认PrivilegesRequired设置:/ ALLUSERS和/ CURRENTUSER。
如果允许覆盖对话框,则安装程序将要求用户根据脚本的默认PrivilegesRequired设置,使用可抑制对话框(例如,如果PrivilegesRequired设置为admin)来选择安装模式。 “允许”对话框会自动允许使用命令行,并且在使用命令行参数之一时,安装程序不会询问用户。
添加了新的[Setup]部分说明:UsePreviousPrivileges。如果此指令设置为yes(默认情况下默认设置)并且PrivilegesRequiredOverridesAllowed设置为dialog,则安装程序将在启动时在注册表中查找以查看是否已经在两种安装模式之一中安装了相同的应用程序,如果已,它将在不询问用户的情况下使用该安装模式。
现在,编译器IDE的“新脚本向导”提供了允许命令行和对话框替代的选项。
Inno Setup自己的安装程序脚本现在支持管理和非管理安装模式,并允许覆盖对话框。
安装并排安装
对并行安装的支持已得到改进:
不共享同一管理安装或非管理安装的两个单独的安装运行不再被视为同一应用程序。这意味着即使安装
由于rs共享相同的AppId设置(如果未设置AppId,则共享相同的AppName设置),现在可以并行安装这些模式,而不会受到以前版本的奇怪副作用。
默认行为的更改:为避免在“添加/删除程序”控制面板中为applet安装程序使用相同的名称,它现在将自动在“并排”期间使用“当前用户”或“ 64位”或类似名称。标记新条目。侧面安装。
在帮助文件中添加了并行安装主题。
可调整大小的向导窗口
现在可以调整向导窗口的大小:
添加了新的[Setup]部分说明:WizardResizable。如果此伪指令设置为yes,则用户将能够调整主安装向导窗口的大小。
新增加了[Setup]部分的新说明:WizardSizePercent,可用于增加所有安装和卸载向导窗口的默认大小,而无需增加字体大小。
Pascal脚本更改:
新向所有控件添加了新的Anchors属性,并向TSetupForm添加了新的KeepSizeY属性,这使您可以向所有自定义控件,自定义向导页面和TSetupForm表单(如果有)添加对WizardResizable和WizardSizePercent的完全支持。有关示例,请参见CodeClasses.iss示例脚本。此示例还显示了对TSetupForm所做的其他更改。
新向TForm支持类添加了新的Constraints属性。
新的现代巫师风格
向导窗口现在支持更现代的外观:
新添加了新的[Setup]部分说明:WizardStyle。如果将此指令设置为modern,则Setup和Uninstall将显示更现代的外观,而WizardResizable和WizardSizePercent的默认值分别更改为yes和120,120。
更改的默认行为:Inno Setup的早期版本也支持WizardStyle,并且如果脚本中仍包含WizardStyle = modern(允许向后兼容,但实际上未进行任何更改),并且您不想采用新外观,则可以应该删除此行或将其更改为WizardStyle = classic。
更新
所有示例和Compiler IDE的“ New Script Wizard”都使用WizardStyle = modern。
Pascal脚本更改:向TWizardPage支持类添加了新的SurfaceColor属性。
现在,无论使用哪种WizardStyle设置,某些元素始终具有更现代的外观:
选择现在,“选择语言”对话框具有更现代的外观,与Windows 10任务对话框和消息框(示例)一致。
展平安装程序界面的某些元素以提供更现代的外观。
编译器IDE更新
外观编译器IDE的外观已更新:
更新了所有工具栏图标,并展平了Compiler IDE的界面,以提供更现代的外观。
编译器IDE现在支持三个主题:亮(示例),暗(示例)和经典(示例)。浅色主题是新的默认主题,除非系统运行Windows 10且启用了深色模式,在这种情况下,深色主题是默认主题。您可以在选项中更改活动主题。
现在,编译器IDE使用每个监视器的DPI感知模式,并且还允许其界面元素使用“ Segoe UI”字体。
编译器输出视图现在已着色。可以在选项中将其关闭。
现在“调试输出”视图将粗体文本用于任何输入行,例如“ -file input-”。
选项“选项”按钮现在,没有管理特权,您可以将.iss文件与此编译器关联到当前用户的关联,而不显示错误。
对于新安装,默认情况下启用了“保存后允许撤消”和“显示缩进”指南选项。
默认情况下,“配置签名工具”窗口现在更宽且可调整大小。