用iexpress命令行创建EXE包的示例

12

我需要帮助使用iexpress命令行创建EXE包的示例。 我有一个包含多个文件和文件夹的文件夹,我想从这个文件夹创建单个EXE文件。你能否提供如何为此创建命令行的示例呢?

3个回答

20

IExpress.exe使用SED文件,这其实只是描述构建安装包时所用参数的文本文件。要在命令行上构建一个自解压安装程序,只需运行带有SED文件作为参数的IEXPRESS:

iexpress /N Your_SED_Script.sed

/N参数用于调用无人值守安装包创建,如果没有该参数,IExpress GUI向导将会弹出。

您可以通过使用IExpress向导生成SED文件,也可以尝试使用自己的代码自动生成。

让我们来看一下SED脚本的结构,以便开始工作。

以下是我通过运行一次IExpress.exe GUI向导生成的SED文件示例。 大多数选项并不重要,但在下半部分中,您将看到TargetName,它指定了生成的自解压包的文件名。FILE0、FILE1、FILE2指定了包中的文件。[SourceFiles]开头的部分描述了IExpress应从哪里查找这些文件。

源文件部分

FILE0="TestProgram.exe"
FILE1="TestData.dat"
FILE2="TestLibrary.lib"
[SourceFiles]
SourceFiles0=C:\Users\user\Documents\Visual Studio 2010\Projects\TestProject\Debug\
SourceFiles1=C:\Users\user\Documents\Visual Studio 2010\Projects\TestProject\Debug\lib\
[SourceFiles0]
%FILE0%=
%FILE1%=
[SourceFiles1]
%FILE2%=

在这里,我们有两个不同的位置,被定义为 SourceFiles0SourceFiles1。它们各自拥有自己的子部分,[SourceFiles0][SourceFiles1],在其下面引用了这些位置中的每个文件。

[Strings]
. 
. 
. 
AppLaunched=TestProgram.exe

[Strings]部分中的AppLaunched参数设置了在解压缩后运行的文件。在它下面,只包含可执行文件TestProgram.exe,但是您可以设置批处理文件(*.bat)以在解压缩后运行。如果Applaunched为空,则该程序包将只解压缩文件。

网上有一些可用的资源,但我承认很难找到有关如何构建自解压程序包而不仅仅是打开它们的任何信息。维基百科条目是一个很好的起点。

维基百科 - IExpress

SED概述

完整的SED脚本

[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=0
HideExtractAnimation=1
UseLongFileName=1
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=I
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[Strings]
InstallPrompt=
DisplayLicense=
FinishMessage=
TargetName=C:\Users\user\Documents\TestSED.exe
FriendlyName=All your SEDs are belong to us
AppLaunched=TestProgram.exe
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="TestProgram.exe"
FILE1="TestData.dat"
FILE2="TestLibrary.lib"
[SourceFiles]
SourceFiles0=C:\Users\user\Documents\Visual Studio 2010\Projects\TestProject\Debug\
SourceFiles1=C:\Users\user\Documents\Visual Studio 2010\Projects\TestProject\Debug\lib\
[SourceFiles0]
%FILE0%=
%FILE1%=
[SourceFiles1]
%FILE2%=

抱歉打扰,但是你可以使用 iexpress 在可执行文件中放置文件夹吗? - user4447514
1
我以为你不行! - user4447514
澄清一下,是的,你可以将文件夹放在可执行文件中。但是iexpress在解压缩时不会保留文件夹结构,而且你必须逐个选择文件,这意味着必须手动遍历每个文件夹以添加其文件。 - mdhansen

2

使用IExpress向导创建SED文件。在“打包的文件”步骤中,您可以指定要压缩的所有文件。

然后使用

iexpress.exe /N sed_file_name

2
iexpress /N /Q NameOfSedFile.SED

3
请进一步解释您的答案。 - Joe Taras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接