2013-12-20 140 views
0
在其他的exe和提取里面的EXE
!include "MUI2.nsh" 
!include "WordFunc.nsh" 
# define the name of the installer 
outfile "simple installer.exe" 


!macro installVddk 

MessageBox MB_OKCANCEL "a.exe is required for installing agent.Do you wish to install it?" IDOK lblinst IDCANCEL abort_inst 

abort_inst: 
      ABORT 
      GoTo lblinst 


lblinst: 
SetOutPath $EXEDir 
;MessageBox MB_OK $OUTDIR 
File a.exe 
ExecWait "a.exe" $1 
!macroend 

# default section 
section " Agent (required)" main_section 
sectionEnd 

Function .onInit 
    !insertmacro installVddk 
FunctionEnd 

我的问题是:NSIS脚本:嵌入安装

1.I必须保持在A.EXE相同的目录在编译过程中NSI脚本。 如何指定可以从中获取a.exe的位置,如果它是非NSI脚本的目录?

2.如果File a.exe命令解压exe文件,其中的代码捆绑EXE,编译过程中,请您及时帮助

+0

它看起来对我来说,在你的榜样B.EXE和c .exe有点混淆,也许在你的现实生活中有问题?你能否更新你的问题以清楚地显示哪个文件被引用以及问题出在哪里?也许你可以告诉我们你的代码的一部分? –

+0

嗨@RolandBärBär, 感谢您的回复,是的,我弄乱了罐子的名字。道歉。 让我试着正确地解释我的问题: 1.我有一个NSI脚本来创建一个exe(agentInstaller.exe) 2.我想修改该NSI脚本来嵌入在agentInstaller中的另一个exe(a.exe)。 exe执行 3.执行agentInstaller.exe时,它应该向用户显示消息“是否要安装a.exe?” 如果用户说OK,那么a.exe应该从agentInstaller.exe中提取(在同一个目录下),并且应该是 被执行。 – user2306856

+0

请参考问题的主要部分 - 编辑其代码 – user2306856

回答

0

A.EXE不必在同一文件夹与.nsi编译脚本的时候,但你必须在申报“文件”的完整路径 - 考虑以下几点:

SetOutPath $EXEDir 
    File "C:\A_folder\a.exe" 
    ExecWait "$EXEDir\a.exe" 
  1. SetOutPath你分不清哪里部署的文件(S),当你运行安装程序
  2. 然后用File你告诉NSIS的文件(S)的收官之(这将随后部署OFC期间使用)