我正在制作软件安装包,之前我正在使用Inno Setup,它的效果非常好。
我遇到Inno设置的当前问题是,它不支持设置UI的所有语言,例如简体中文。
VSTS 2008的安装项目几乎支持所有语言,但它不支持从当前安装程序调用其他安装程序,以允许最终用户安装相关软件包。
我的发布程序适用于Windows平台(Vista和XP),使用C#+ VSTS 2008 + .Net 2.0编写。
对我的问题有任何建议吗?
提前谢谢, 乔治答案 0 :(得分:5)
正如您的问题的评论之一所示,您可能只想将所需的语言集成到Inno Setup中。您可以通过添加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:
您根本不需要将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的作者)寻求建议 - 他是一个好人,当我上次邮寄给他时,他很快回复。