2010-01-21 92 views
1

我正在研究能够安装2个工具的MSI文件。这两个工具都是从exe文件安装的,但可以通过 这样的参数静默启动,例如/ SI 我可以在没有任何问题的情况下构建项目,而不会发出警告......解除安装也可以正常工作。 如果我双击我的MSI文件,这两个软件都是没有问题....安装然后 我可以毫无问题卸载......通过msiexec/i ..安装MSI/qn

,但如果我用我的启动MSI文件MSIEXEC/I mymsi.msi/QN这次只安装了第一个软件TOOL-A ...然后没有别的。 你可以看到我下面的配置: 工具 - 自定义操作

Tool-A Custom Actions: 
Executable Filekey: setup.exe 
Command Line: /SI 
Return Processiong: Synchronous (check exit code) 
In-Script Execution: Immediate Execution 

Execution Scheduling: Execute only once 
Install UI Sequence: After ExecuteAction 
Install UI Condition: Not Installed 
Install Exec Sequence: After InstallFinalize 
Install Exec Condition: Not Installed 
Advertise Exec Sequence: Absent from sequence 
Admin UI Sequence: <Absent from sequence> 
Admin Exec Sequence: <Absent from sequence> 
MSI Type Number 274 

而对于第二个工具(使用MSIEXEC从未安装)

Tool-B custom action 
Executable Filekey: setup.exe1 
Command Line: /q 
Return Processiong: Synchronous (check exit code) 
In-Script Execution: Immediate Execution 
Execution Scheduling: Execute only once 
Install UI Sequence: After tool-A 
Install UI Condition: Not Installed 
Install Exec Sequence: After tool-A 
Install Exec Condition: Not Installed 
Advertise Exec Sequence: <Absent from sequence> 
Admin UI Sequence: <Absent from sequence> 
Admin Exec Sequence: <Absent from sequence> 
MSI Type Number 274 

所以,如果有人能帮助我吗?取消:如果MSI通过双击启动没有问题:安装了tool-A和tool-B! 如果我使用Msiexec/i mymsi.msi/qn只是安装工具-A!

回答

0

我同意迈克尔,你会发现Tool-B的安装使用Windows Installer服务。当您的安装执行顺序正在运行时,正在进行交易。在安装程序版本4.5之前,安装程序不允许同时发生两个事务,这将阻止工具-B的安装运行。

从版本4.5开始,有一些神奇使得这成为可能。实际上,它可以让你告诉安装程序“嘿,我希望你执行的其他安装事务是我的事务的一部分,因此,将它们合并为一个事务,谢谢。

这是要参考文档:

http://msdn.microsoft.com/en-us/library/bb736322%28VS.85%29.aspx

0

在详细日志文件中是否有任何迹象表明发生了什么? (msiexec /i mymsi.msi /qn /l*v verbose.log)我的猜测是工具-B使用MSI进行安装,因此无法从执行顺序安全地安装。即使它表示失败,当您使用/ qn运行并在InstallFinalize之后计划时,这也不会回滚外部安装。当然,如果它不表示失败,将很难说出发生了什么。也许看看Tool-B的命令行是否支持采取某种日志。