通过msiexec / i .. / qn安装MSI

时间:2010-01-21 19:27:40

标签: installation windows-installer uninstall

我正在开发一个能够安装2个工具的MSI文件。这两个工具都是从exe文件安装的,但是可以使用静默启动 像/ SI这样的参数 我可以毫无问题地构建项目而不会出现问题......卸载也可以正常工作。 如果我双击我的MSI文件,两个软件都安装没有问题.... 然后我可以毫无问题地卸载...

但是如果我使用msiexec / i mymsi.msi / qn启动我的msi文件,这次只安装了第一个软件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没有问题:安装了工具-A和工具-B! 如果我使用Msiexec / i mymsi.msi / qn只安装了工具-A !!!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我同意Michael的看法,你会发现Tool-B的安装使用的是Windows Installer服务。当您的安装执行序列正在运行时,正在进行事务处理。在安装程序版本4.5之前,安装程序不允许同时进行两个事务,这会阻止Tool-B的安装运行。

从版本4.5开始,有一些魔力使这成为可能。实际上,它可以告诉安装程序“嘿,我希望你执行的其他安装事务实际上是我的事务的一部分。所以,合并这两个并将它们视为单个事务。谢谢。”

这是您要参考的文档:

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

相关问题