- 发表评论
- 17,208 次浏览
- A+
博客更新:
20240620:跟进 6.3.1 沈忠良最新汉化版
20230412:跟进 6.2.2 沈忠良最新汉化版
更新日志:
6.3.1 (2024-06-10)
6.3.0 (2024-06-09)
改进了对 UTF-8 编码文件的支持
添加了对 .iss 脚本文件、.isl 消息文件、LicenseFile、InfoBeforeFile、InfoAfterFile 和 ISPP #file 带 BOM 的 UTF-8 编码文件的支持。
编译器 IDE 更改:
默认情况下,新的脚本文件现在保存为 UTF-8,没有 BOM,使 IDE 与大多数其他文本编辑器保持一致。在使用“文件”菜单的“保存编码”子菜单手动更改保存编码之前,现有文件仍保持原样。
在“文件”菜单的“保存编码”子菜单中添加了新的“带 BOM 的 UTF-8”菜单项,以便使用 BOM 保存新文件。
Pascal Scripting 更改:
支持函数 LoadStringsFromFile 现在还支持不带 BOM 的 UTF-8 编码文件。
添加了新的 SaveStringsToUTF8FileWithoutBOM 支持函数
。
ISPP 更改:SaveToFile 保存的预处理器输出现在始终保存为 UTF-8,不带 BOM。
改进了对 Arm64 系统的支持,以及相关的增强功能
安装程序现在正式支持在 Arm64 Windows 11 系统上安装 x64 应用程序,这些应用程序能够通过仿真运行 x64 二进制文件。若要使 x64 应用安装程序能够在 Arm64 Windows 11 上正常运行,可能需要在脚本中进行一些小的更改。最重要的是:
在 ArchitecturesAllowed 和 ArchitecturesInstallIn64BitMode中,将 x64 的任何用法更改为 x64compatible。
在 Check 参数和 [Code]中,将 IsX64 的用法更改为 IsX64Compatible。
在 [Code]中,如果有任何 ProcessorArchitecture = paX64 的比较,都需要用 IsX64Compatible 来替换。
x64/IsX64 和新的 x64compatible/IsX64Compatible之间的主要区别在于后者同时匹配 x64 Windows 和 Arm64 Windows 11。
在大多数情况下,应进行上述更改,否则,Arm64 系统上的用户可能无法运行安装程序。例如,ArchitecturesAllowed=x64 设置仅允许安装程序在 x64 Windows 上运行,而不允许在 Arm64 Windows 11 上运行。或者,如果在同一安装程序中提供应用的 x86 和 x64 版本,则在 Arm64 Windows 11 上运行时,可能会选择 32 位 x86 版本而不是预期的 x64 版本。
[Setup] 部分指令 ArchitecturesAllowed 和 ArchitecturesInstallIn64BitMode 已得到增强:
引入了6个新的体系结构标识符。简述:
arm32compatible 匹配能够运行 32 位 Arm 二进制文件的系统。
x64compatible匹配能够运行 x64 二进制文件的系统。
x64os 仅匹配运行 x64 Windows 的系统。(等同于现有的 x64 标识符,该标识符现已弃用。)
x86compatible 匹配能够运行 32 位 x86 二进制文件的系统。
x86os 仅匹配运行 32 位 x86 Windows 的系统。(等同于现有的 x86 标识符。)
win64 匹配运行 64 位 Windows 的系统,无论体系结构如何。
有关每个标识符的更多详细信息,请参阅新的体系结构标识符 帮助主题。
现在支持布尔表达式。例如,通过使用 and 运算符,可以要求两个体系结构标识符同时匹配。有关使用示例,请参阅 ArchitecturesAllowed 帮助主题。
x64 体系结构标识符现已弃用。如果使用,编译器会发出警告并替换 x64os,效果相同。但如上所述,在大多数情况下,应将脚本更改为使用 x64compatible,因为它与 x64 Windows 和 Arm64 Windows 11 匹配。
64 位示例脚本(64Bit*.iss) 已全部更新为首选使用 x64compatible。
某些以前仅适用于 x64 Windows 的 64 位功能现在也适用于 Arm64 Windows 11。这包括:
在 64 位安装模式下运行时 [Dirs] 部分的 Permissions 参数。
在 64 位安装模式下运行或使用 64 位标志时,[Files] 部分的 Permissions 参数。
在 64 位安装模式下运行或 Root 参数的值以 64 结尾时,[Registry] 部分的 Permissions 参数。
在 64 位安装模式下运行或使用 64 位标志时 [Files] 部分的 regtypelib 标志。
请注意,Arm64 Windows 10 仍不支持上述所有功能。
安装程序现在记录系统支持的计算机类型,即可以本机执行或通过仿真执行哪些类型的 EXE。例如,在 Arm64 Windows 11 系统上运行时,它会记录:系统支持的机器类型:x86 x64 Arm32 Arm64。
不再使用 OnlyOnTheseArchitectures 消息。相反,现在,当在 ArchitecturesAllowed 表达式不允许的体系结构上启动安装程序时,将显示 WindowsVersionNotSupported 消息。(但请不要从翻译文件中删除该消息。)
Pascal 脚本更改:添加了新的 IsArm32Compatible、IsX64Compatible、IsX64OS、IsX86Compatible 和 IsX86OS 支持函数。如上所述,IsX64 支持功能仍然存在,但现在已弃用。测试所有体系结构标识符的示例:
[Code]
function InitializeSetup: Boolean;
begin
if IsArm32Compatible then Log('IsArm32Compatible');
if IsArm64 then Log('IsArm64');
if IsX64OS then Log('IsX64OS');
if IsX64Compatible then Log('IsX64Compatible');
if IsX86 then Log('IsX86');
if IsX86OS then Log('IsX86OS');
if IsX86Compatible then Log('IsX86Compatible');
if IsWin64 then Log('IsWin64');
Result := True;
end;
改进了对 #include 文件的支持
Compiler IDE 现在在选项卡中最多可打开 20 个 #include 文件,而不是原来的 10 个。
现在可以关闭打开的 #include 文件的选项卡:在“视图”菜单中添加了新的“关闭选项卡”(Ctrl+F4)、“重新打开选项卡”和“重新打开所有选项卡”菜单项,也可以通过右键单击选项卡栏来使用。
因此,“运行”菜单中“计算常量”菜单项的快捷方式已从 Ctrl+F4 更改为 Ctrl+F7。
“所选文件”选项卡和“鼠标悬停”#include“文件选项卡现在显示”关闭“按钮。
在状态栏中添加了一个可单击的面板,显示关闭选项卡的数量(如果有)。
移除了切换标签时的闪烁(在深色模式下尤其明显)。
删除了对 Windows Vista、Windows Server 2008 和 Itanium 体系结构的支持
操作系统要求更改:不再支持 Windows Vista 和 Windows Server 2008。Windows 7 和 Windows Server 2008 R2 现在是最低支持的操作系统。[Setup] 区段指令 MinVersion 仍默认为 6.1sp1,因此默认情况下,安装程序仍不会运行在尚未更新的 Windows 7 和 Windows Server 2008 R2 版本。
不再支持已失效的 Itanium 体系结构。ia64 体系结构标识符已被删除,如果安装程序在 Itanium 系统上启动,则安装程序将显示 WindowsVersionNotSupported 错误消息。
删除了 [Icons] 区段标记 foldershortcut。运行在 Windows Vista 或 Windows Server 2008 上时就已被忽略,因为文件夹快捷方式不再在“开始”菜单上正确展开。
编译器 IDE 更改
添加了工具栏按钮和快捷方式,用于向后导航 (Alt+Left) 和前进 (Alt+Right)。还支持通过按鼠标 X 按钮进行导航。更改选项卡或一次移动至少 11 行时会添加导航项,类似于 Visual Studio 2022。
因此,Alt+Right 不能再用于启动自动完成,而是必须使用现有的 Ctrl+空格或新的 Ctrl+I 替代方法。若要仍然能够将 Alt+Right 用于此激活 Visual Studio 样式的快捷方式,请参阅下文。
添加了对 Build 和 Run 菜单的 Visual Studio 样式快捷方式(如 Ctrl+- 向后导航、Ctrl+B 编译和 F5 运行)的支持。若要激活此功能,请使用“工具”菜单中的“选项”菜单项将新的“快捷键映射”选项设置为“Visual Studio”。
添加了多选支持(Ctrl+点击 或 Ctrl+拖动)。回车、退格、删除、撤消、重做、复制和粘贴都可以通过以这种方式添加多个选择,或者通过预先存在的对执行矩形块选择的支持(Alt+Shift+箭头或 Alt+拖动)添加多个选择。
添加了一个快捷方式,用于将多个选区恢复为单个选区或将单个选区恢复为空选区(Esc)。
在 Windows 10 版本 2004 及更高版本上添加了对标题栏的深色模式支持。
在所有版本的 Windows 上添加了对主菜单栏的深色模式支持。
在 Windows 10 版本 1903 及更高版本的菜单添加了深色模式支持,操作系统版本支持到 Windows 11 版本 23H2(当前是最新版本的 Windows 11)。
更新了编辑器边框使用的图标,包括在高分辨率设置下的加宽边框中自动使用更高质量的版本。
带有断点的行现在显示为带有语法高亮显示的普通行,而不是红底白字。编辑器的边框仍然在这些行上显示一个图标。
现在,在会话之间按文件保留断点。
在“运行”菜单中添加了新的“删除所有断点 (Shift+Ctrl+F5)”菜单项。
向菜单添加了图标。
添加了新的“高亮显示当前选择”和“高亮显示当前单词”选项。第一个默认启用,第二个默认禁用。
“允许光标超出行尾”选项(“虚拟空间”)现在默认处于禁用状态,这与大多数其他编辑器一致。
启用“允许光标超出行尾”选项后,当光标位于行首时按左箭头键将不再将光标移动到上一行的末尾,除非同时按下 Ctrl 键,就像在 Notepad++、Visual Studio 和 RAD Studio 中一样。
“新建脚本向导”现在提供了导入 Windows 注册表 .reg 文件的选项。
现在,如果新建脚本向导检测到所选主可执行文件为 64 位,则会自动将 ArchitecturesInstallIn64BitMode 和 ArchitecturesAllowed 设置为 x64acpatible。默认的主可执行文件现在是 64 位 MyProg-x64.exe 示例可执行文件,而不是 32 位 MyProg.exe。
在“工具”菜单中新增了“生成 [Registry] 条目 (Shift+Ctrl+R) 菜单项,以将 Windows 注册表 .reg 文件作为额外条目导入到[Registry]区段的光标位置,或者添加到新的区段。
在“工具”菜单中新增了“生成 [Files] 条目 (Shift+Ctrl+I)”菜单项,以设计将额外的条目插入到 [Files] 区段的光标位置,或者添加到新的区段。/li>
生成 MsgBox/TaskDialogMsgBox 调用工具(以前称为 MsgBox/TaskDialogMsgBox 设计器)现在遵循制表符宽度和制表符字符设置,将生成的 Pascal 脚本缩进一个额外的级别,并在光标位置不在 [Code] 区段中时发出警告。
次要的主题颜色调整,例如所选文本的不同背景颜色。
改进了对日志记录的支持
添加了新的 [Run] 和 [UninstallRun] 部分标志 logoutput。指示安装程序和卸载记录已执行程序或批处理文件的输出。不能与 nowait、runasoriginaluser、shellexec 和 waituntilidle 标志结合使用。如果未启用日志记录,则不起作用。
添加了新的 [Setup] 部分指令 UninstallLogging,该指令默认为 no。如果设置为“yes”,如果从“添加/删除程序”控制面板启动,则卸载程序将始终创建日志文件。等效于在命令行上传递 /LOG。
数字签名更改:现在,签名工具输出始终记录在编译器 IDE 的“编译器输出”视图中,从而更轻松地调试问题。因此,作为控制台程序的签名工具现在将始终隐藏运行,因为它们的输出正在被捕获,并且它们不会在其窗口中显示任何内容。
Pascal 脚本更改:添加了新的 ExecAndLogOutput 支持函数。可用于将已执行程序或批处理文件的输出记录到安装程序和卸载的日志中,或在自己的 [Code] 函数中逐行接收输出,例如,从帮助文件和新的 PowerShell.iss 示例脚本中所示的输出中读取第一个非空行。
ISPP 更改:
使用 Exec 支持功能执行的程序或批处理文件的输出现在始终记录在编译器 IDE 的“编译器输出”视图中。
添加了新的支持函数 ExecAndGetFirstLine 来执行程序或批处理文件,并从其输出中读取第一个非空行,然后可以在脚本中放置或使用该行,如新的 PowerShell.iss 示例脚本中所示。
其他更改
控制台模式编译器 (ISCC) 更改:添加了对 Unicode 输出的支持。
添加了新的 [Files] 部分标志 signcheck。指示编译器在存储原始源文件之前检查它们是否具有数字签名。
在启动过程中,安装程序始终会要求 Windows 创建任何缺少的 {usercf}、{userpf} 和 {usersavedgames} 文件夹。在脚本请求文件夹之前,它不再执行此操作。请注意,在管理安装模式下运行的脚本不应执行此操作,因为它违反了 used 用户区域警告。
进一步帮助防止潜在的 DLL 预加载攻击的更改。
添加了对 IIS 组用户标识符 (iisiusrs) 的支持,以便在权限参数中使用。
ISPP 更改:
添加了支持函数 AddQuotes,如果字符串包含空格并且还没有引号,则可以在字符串的左右两侧添加引号字符。
如果 filename 参数包含空格,则支持函数 Exec 不再需要引用该参数。此外,它现在支持“>”作为文件名,现在包括对 .bat 和 .cmd 文件的特殊平台独立支持,两者都就像 [Run] 部分一样。
Pascal Scripting 更改:
添加了支持函数 UTF8Encode 和 UTF8Decode,将 Unicode 字符串编码为 UTF-8 编码的 ANSI 字符串,反之亦然。
添加了支持函数 LoadStringFromLockedFile 和 LoadStringsFromLockedFile,以便从文件中读取字符串,即使该文件已由其他程序打开以供写入。
添加了支持类 TNewLinkLabel,该类可以显示带有嵌入链接的多行文本,并在内部使用 Windows SysLink 控件。有关示例,请参阅 CodeClasses.iss 示例脚本。
TWizardForm:添加了新的 AdjustLinkLabelHeight 函数。
TDownloadPage:添加了新的 ShowBaseNameInsteadOfUrl 属性。
现在可以写var S: set of AnsiChar; begin S := ['a', 'b']; end;。在以前的版本中,这将导致类型不匹配错误。
现在可以写入 Stream.ReadBuffer(S, Length(S)); 当 S 的类型为 AnsiString 时。在以前的版本中,这将编译,但在运行时不起作用。这同样适用于 Read、Write 和 WriteBuffer:所有四个函数现在都接受任何类型的字符串。
添加了将 Zip 文件下载并解压缩到 CodeAutomation.iss 示例脚本的示例。
类型 TShellFolderID 已删除,因为它未被任何支持函数使用。
改进了 150% DPI 和 200% DPI 的“选择语言”对话框和“选择目标位置”、“选择开始菜单文件夹”和“准备安装”向导页面使用的图标。
向 MyProg 示例可执行文件添加了新式图标,现在使用 Visual Studio 2022 编译。
添加了官方韩语翻译。
Inno Setup 现在使用 Delphi 11.3 Alexandria 而不是 Delphi 10.3 Rio 构建。
Inno Setup 的 Delphi 项目已重新创建为新的干净项目,并已添加到 ProjectsProjects.groupproj 项目组中。这使得开始使用 Inno Setup 源代码和做出贡献变得更加容易,即使是免费的 Delphi 社区版也是如此。
细微的调整和文档改进。
程序截图:
普通下载:
官方版:
Ansi版本:http://www.jrsoftware.org/download.php/is.exe
UnAnsi版本:http://www.jrsoftware.org/download.php/is-unicode.exe
汉化版:
https://url84.ctfile.com/d/5279384-30343427-53d5a9?p=4221 (访问密码: 4221)