制作软件安装包问题

时间:2009-07-07 05:41:30

标签: c# .net visual-studio-2008 installation inno-setup

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

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

VSTS 2008的安装项目几乎支持所有语言,但它不支持从当前安装程序调用其他安装程序,以允许最终用户安装相关软件包。

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

对我的问题有任何建议吗?

提前谢谢, 乔治

1 个答案:

答案 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. 您正在使用Inno Setup来执行软件的实际安装(复制文件,注册表项等),另外还需要运行安装程序以满足先决条件。
  2. 您的软件也有单独的安装程序,只需要Inno安装程序就可以运行安装程序以获取先决条件和软件。
  3. 案例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的作者)寻求建议 - 他是一个好人,当我上次邮寄给他时,他很快回复。