我正在制作软件安装包,之前我使用的是Inno Setup,它工作得非常好。
我目前遇到的Inno安装程序的问题是,它不支持安装UI的所有语言,例如简体中文。
VSTS 2008的安装项目几乎支持所有语言,但它不支持从当前安装程序调用另一个安装程序,让最终用户安装依赖的软件包。
我要发布的程序是针对Windows平台(Vista和XP)的,是用C# +VSTS2008+ .Net 2.0编写的。
对我的问题有什么建议吗?
先谢谢你,乔治
发布于 2009-07-07 07:17:59
正如对您的问题的一个注释所建议的那样,您可能希望简单地将所需的语言集成到Inno设置中。为此,您可以添加Languages部分:
[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"这使得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这包括将文件.\Files\sample.exe添加到安装程序中,在安装时将其复制到TEMP文件夹,并在安装完成后将其删除。然后,在复制文件之后,它运行TEMP\sample.exe并等待它完成。
编辑2个
关于OP对[Run]部分中项目顺序的评论:
有两种可能的情况:
还为您的软件创建了单独的安装程序,只需安装程序即可运行系统必备组件和软件的安装程序。
对于情况1:
您根本不需要将您的EXE文件放入[Run]部分,除非您希望允许用户在设置后启动您的应用程序,如许多设置中使用复选框("Run XYZ now?")所示。在这种情况下,请为您的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的作者)寻求建议--他是个很好的人,当我上次给他发邮件时,他很快就回复了。
https://stackoverflow.com/questions/1090551
复制相似问题