0

我正在制作软件安装包,之前我使用的是 Inno Setup,它工作得非常好。

我在 Inno setup 遇到的当前问题是,它不支持设置 UI 的所有语言,例如简体中文。

VSTS 2008 的安装项目几乎支持所有语言,但不支持从当前安装程序中调用另一个安装程序让最终用户安装依赖的软件包。

我要发布的程序适用于 Windows 平台(Vista 和 XP),用 C# + VSTS 2008 + .Net 2.0 编写。

对我的问题有什么建议吗?

提前谢谢,乔治

4

1 回答 1

5

正如对您问题的评论之一所暗示的那样,您可能只想将所需的语言集成到您的 Inno 设置中。您可以通过添加以下Languages部分来做到这一点:

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"

这允许 UI 以英语和荷兰语显示。可以相应地添加其他翻译。

Windows Installer 不允许“嵌套安装”(从 MSI 运行 MSI)这一事实可能很烦人。但是,您可能会考虑将 MSI 安装程序打包到无 UI(= 静默)的 Inno Setup 中,并让 Inno Setup 一个一个地运行 MSI。

编辑
这向您展示了如何运行 EXE 文件来安装您的依赖项。请注意,它们可能会在您的软件之后安装。如果需要在您的软件之前安装它们,您可能需要编写一些 Pascal 脚本 - 帮助文件中对此进行了说明。

[Files]
DestDir: {tmp}; Source: .\Files\sample.exe; Flags: deleteafterinstall;
[Run]
Filename: {tmp}\sample.exe; StatusMsg: Installing prerequisite

这包括文件.\Files\sample.exe到设置中,在安装时将其复制到 TEMP 文件夹,并在设置完成后将其删除。然后,在复制您的文件后,它会运行TEMP\sample.exe并等待它完成。

编辑 2
关于 OP 对本节中项目顺序的评论[Run]

有两种可能的情况:

  1. 您正在使用 Inno Setup 来执行软件的实际安装(复制文件、注册表项等),并且还需要为先决条件运行安装程序。
  2. 您的软件也有单独的安装程序,只需要 Inno Setup 来运行先决条件和软件的安装程序。

对于案例 1:
您根本不需要将 EXE 文件放入该[Run]部分,除非您希望允许用户在设置后启动您的应用程序,如在许多设置中使用复选框(“现在运行 XYZ?” )。在这种情况下,请为您的 EXE 使用以下行:

Filename: {app}\yourprogram.exe; StatusMsg: Run the application; Flags: postinstall skipifsilent unchecked; Description: Run the application now

对于案例 2:
我会[Run]根据它们的依赖关系对该部分中的条目进行排序。也就是说:第一个条目是其他人所依赖的条目,最后一个条目是您的应用程序设置。但我不确定条目的处理顺序。

这可能会在该[Run]部分的文档中得到解答。如有疑问,请尝试向 Jordan Russel(Inno Setup 的作者)寻求建议 - 他是一个好人,当我上次给他发邮件时,他很快就回复了。

于 2009-07-07T07:17:59.240 回答