首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >制作软件安装包问题

制作软件安装包问题
EN

Stack Overflow用户
提问于 2009-07-07 05:41:30
回答 1查看 509关注 0票数 0

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

我目前遇到的Inno安装程序的问题是,它不支持安装UI的所有语言,例如简体中文。

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

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

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

先谢谢你,乔治

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-07 07:17:59

正如对您的问题的一个注释所建议的那样,您可能希望简单地将所需的语言集成到Inno设置中。为此,您可以添加Languages部分:

代码语言:javascript
复制
[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脚本-帮助文件中对此进行了说明。

代码语言:javascript
复制
[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执行软件的实际安装(复制文件、注册表项等)此外,还需要运行prerequisites.
  2. You've的安装程序。

还为您的软件创建了单独的安装程序,只需安装程序即可运行系统必备组件和软件的安装程序。

对于情况1:

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

代码语言:javascript
复制
Filename: {app}\yourprogram.exe; StatusMsg: Run the application; Flags: postinstall skipifsilent unchecked; Description: Run the application now

对于情况2:

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1090551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档