11.0.0 版本更新说明:
新特性
- 现在 macOS 的公证是跨平台的,因此可以在 Linux 或 Windows 上完全构建所有的媒体文件。
- 添加了 macOS 上代码签名的 PKCS #11 选项。
- 添加了 PKCS #11 插槽索引的选择对话框,列出了 HSM 描述和制造商。
- 改进了 PKCS #11 证书选择,更好地列出了可用证书。
- PKCS #11 证书现在可以通过其标签进行选择,而不仅仅是签发者/序列号选择。
- 对于 PKCS #11,现在提供了一个自动选择有效期限最长的代码签名证书的选项。
- 在“常规设置 → 代码签名步骤”中选择证书文件时,文件选择器现在显示隐藏文件。
- 在“常规设置 → 代码签名”步骤中添加了一个选项,用于使用外部可执行文件进行 Windows 代码签名。
- 添加了“连锁证书”目录选项用于 Windows 代码签名。如果您的中间证书未包含在密钥存储中,则需要此选项。
- 脚本编辑器现在显示光标高亮。光标高亮功能为所选元素的读写访问提供了不同的颜色。
- 改进了脚本编辑器中的代码补全建议,包括可 tab 展开的代码片段如“serr”,“log”和“error”。
- 脚本编辑器中的代码补全现在默认情况下会在输入时自动建议。您可以在 Java 编辑器设置中禁用此行为。
- 改进了脚本编辑器中的导入和实现存根的类型参数。静态导入用于 install4j API 类。
- 添加了在脚本编辑器中重命名变量的操作(代码 → 重命名)。
- 添加了在脚本编辑器中格式化整个脚本或选定代码的操作(代码 → 格式化代码)。可以在 Java 编辑器设置中使用 Eclipse 设置文件指定格式化选项。
- 在 Java 编辑器设置中现在可以配置 Tab 大小。
- 在脚本编辑器中,输入闭合括号时现在会格式化前面的块。此行为可以在 Java 编辑器设置中禁用。
- 添加了针对当前脚本优化导入的操作(代码 → 优化导入)。
- 添加了在方法调用处显示可用参数的操作(代码 → 参数信息)。
- 添加了在当前脚本中移动到下一个/上一个问题的操作(代码 → 导航到下一个/上一个高亮问题)。
- 脚本编辑器现在在“编辑”菜单中具有“扩展选择”和“缩小选择”的操作,用于在当前位置周围选择环绕或包含的代码块。
- 脚本编辑器现在具有检测到问题时的“快速修复”操作(代码 → 快速修复)。如果有快速修复可用,浮动弹出窗口将出现。
- 脚本编辑器现在具有针对当前选定元素的广泛重构操作(代码 → 重构)。
- 脚本编辑器现在支持适用于 macOS 的 IntelliJ、Eclipse 和 VS Code 的替代键盘映射。首次使用时可以选择键盘映射,并且可以在键盘映射对话框中稍后更改。
- 添加了一个编译器变量的敏感性选项,以避免将选定变量的值写入运行时配置文件。
- 编译器变量的平台特定覆盖。
- 覆盖编译器变量时,现在可以使用语法
${compiler:variableName}
引用基础值。这适用于平台特定和媒体特定的覆盖。 - 添加了编译器变量和预定义安装程序变量的选项,以将文件和路径分隔符转换为目标平台。
- 添加了“从 JSON 文件读取值”的操作。
- 添加了“统计 JSON 文件中出现次数”的操作。
- 添加了“修改 JSON 文件”的操作。
- “复制文件和目录”和“移动文件和目录”动作现在支持符号链接。“符号链接处理”属性控制是否复制内容或使用相同的相对或绝对目标。“在创建符号链接失败时”属性在处理符号链接期间提供不同的失败策略。
- “创建符号链接”动作现在也适用于 Windows。Windows 上的执行由“在 Windows 上执行”属性控制,默认情况下是禁用的。
- 在“常规设置 → JRE 束 → 搜索序列”步骤上添加了“先前安装”的搜索序列条目类型,以便在更新安装程序中重用已安装的 JRE。只考虑具有相同应用程序 ID 的安装。
- “安装文件”动作:如果通过“先前安装”的搜索序列条目找到 JRE,则该动作现在从不同的安装目录复制 JRE。这防止了当先前安装被卸载时可能出现的问题。
- 更新下载器现在可以根据更新安装程序的 JRE 版本来做出决策,通过检查
com.install4j.api.update.UpdateDescriptorEntry#getJreMinVersion
和#getJreMaxVersion
。 - 支持 Windows 安装程序初始进度对话框中的深色模式(Windows 11+)。
- 新语言:乌克兰语。
- Gradle、Maven 和 Ant 插件现在可以自动提供适当的 install4j 版本。仍然可以指定 installDir 参数,但不再是必需的。
- 如果在任务中通过调用任务的“输入”属性的方法来自定义文件输入,则 Gradle 插件现在与配置缓存兼容。
- 现在在 install4j Gradle 任务中也可以使用之前仅在 install4j Gradle 扩展中存在的“许可证”和“installDir”属性。
- JDK 提供者现在每天检查一次 JDK 的下载 URL 是否发生变化,并在必要时刷新生成的 JDK 束。
- Windows 安装程序现在使用
AppData\Local\install4j\t
作为临时目录,而不是AppData\Temp
。这减少了与安全策略和防病毒工具的冲突。 - 更新并改进了“打开 PDF 查看器”动作和“PDF 显示”表单组件。
- 在响应文件中支持具有枚举值的变量。
- “询问用户”失败策略现在对于动作和动作组有单独的子选项,允许用户选择“重试”、“忽略”和“退出”。
- “复选框”、“单个单选按钮”和“单选按钮组”表单组件:为选择脚本添加了“激活屏幕时也执行”的属性,适用于脚本管理其他表单组件的可见性或启用性的场景。
- 支持文件选择器中的多个文件选择,适用于生成的图标和持有多个文件的属性。
- 如果在生成 JRE 束时无法下载 JDK,现在记录失败的 URL,以便您可以创建防火墙配置中的例外。
- “多行标签”和“多行 HTML 标签”表单组件:添加了“使文本可选”的属性,以便用户可以使用鼠标选择文本并复制到剪贴板。
- “添加桌面链接”动作:在带有 GNOME 桌面环境的 Linux 上,创建的桌面链接现在可以直接执行,并不会显示是否信任链接的对话框。
- “注册添加/删除项”:该动作现在可以在没有提升权限的情况下执行,因此它只会为当前用户创建条目。
API 变更:
- 添加了
ExternalFile#getOriginalName
以检索运行时外部打包文件的原始名称。
Bug 修复
- 脚本编辑器:使用 Java 9+ 时,修复了“当前光标位置没有 Javadoc 可用”对于 install4j API 类的问题。
- 在 macOS 上,用于在安装程序屏幕之间导航的键盘快捷键已更改为 Ctrl+Option+Left Arrow 和 Ctrl+Option+Right Arrow,确保即使焦点位于文本字段内也能工作。
- 文本和代码编辑器中的撤销和重做工具栏按钮和菜单项总是处于禁用状态。
- 为 macOS 生成的 ICNS 图标如果使用较大的图像可能会有问题。
- Windows 安装程序的
-manual
命令行开关并不总能启用“定位”按钮。 - 在实例化 Bean 时缺少自定义代码会打印误导性的错误消息。现在错误消息中提到了缺失的类。
- “加载响应文件”动作:如果选择了“为响应文件注册变量”属性,则响应文件中的注释不会保留。
- Bean 名称不再写入运行时配置,只有 Bean ID 会被注释到堆栈跟踪中。
- install4j 编译器的并发执行可能会损坏下载的 JDK 束。
- 在 Windows 上未检测到 Adoptium JRE 安装。
- 在禁用具有定制器标签(如“安装类型”屏幕)的 Bean 并再次启用后,只显示属性。
- “安装类型”屏幕:如果选定的安装类型是用户可配置的,并且用户在升级安装程序中不更改安装类型,则所选组件不会重置为安装类型的默认集合。
- macOS 上的 SWT/QT 启动器现在仅支持在新进程中启动安装程序应用程序,以避免死锁。
- 格式化文本字段表单组件:如果未选择“防止空用户输入”,用户无法删除所有字符。
- 在启动向导的“Java 调用”步骤中的主类选择器如果没有添加模块名称,如果主类来自目录模块路径条目。
- 文本字段中的变量下拉菜单的键盘快捷键现在在 macOS 上为 Command+Alt+V,以避免打印字符。