制作软件安装包问题

Geo*_*ge2 0 .net c# installation inno-setup visual-studio-2008

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

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

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

我的发布程序是针对Windows平台(Vista和XP),用C#+ VSTS 2008 + .Net 2.0编写的.

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

乔治,提前谢谢

Tho*_*mar 5

正如您的问题的评论之一所示,您可能只想将所需的语言集成到Inno Setup中.你可以通过添加以下Languages部分来实现:

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
Run Code Online (Sandbox Code Playgroud)

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

Windows Installer不允许"嵌套安装"(从MSI运行MSI)的事实可能很烦人.但是,您可能会考虑将MSI安装程序打包到无UI(无声)Inno安装程序中,并让Inno安装程序逐个运行MSI.

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

[Files]
DestDir: {tmp}; Source: .\Files\sample.exe; Flags: deleteafterinstall;
[Run]
Filename: {tmp}\sample.exe; StatusMsg: Installing prerequisite
Run Code Online (Sandbox Code Playgroud)

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

编辑2
关于OP对该[Run]部分项目顺序的评论:

有两种可能的情况:

  1. 您正在使用Inno Setup来执行软件的实际安装(复制文件,注册表项等),另外还需要运行安装程序以满足先决条件.
  2. 您也有一个单独的软件安装程序,只需要Inno安装程序来运行安装程序以获得先决条件和您的软件.

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

Filename: {app}\yourprogram.exe; StatusMsg: Run the application; Flags: postinstall skipifsilent unchecked; Description: Run the application now
Run Code Online (Sandbox Code Playgroud)

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

这可以在本[Run]节的文档中回答.如果有疑问,请尝试向Jordan Russel(Inno Setup的作者)寻求建议 - 他是一个好人,当我上次邮寄给他时,他很快回复.