通过visual studio安装程序运行另一个MSI

时间:2015-02-13 08:59:08

标签: mysql visual-studio-2010 windows-installer msiexec silent-installer

我想用我的安装程序安装MySQL安装程序msi。(MySQL安装程序必须以静默方式安装。我在自定义操作中使用批处理文件来执行此操作。)

然而,问题是MySQL的msi无法在主setup.msi中运行,它会发出1618错误(需要另外安装完成。)我想知道一个简单的方法。

背景信息:MySQL安装程序解压缩包含MySQLInstallerConsole.exe的清单,然后通过另一个cmd命令调用它来安装MySQL。

所以我要做的就是执行MySQL安装程序,以便解压缩清单。稍后我会调用MySQLInstallerConsole.exe来通过自定义操作安装MySQL。

3 个答案:

答案 0 :(得分:3)

没有简单的解决方法。 Windows Installer通过使用互斥锁一次强制执行1次安装。您需要创建一个bootstrapper / chainer来序列化软件包的安装。 Visual Studio部署项目不支持此功能。我建议查看Windows Installer XML(WiX),它是Burn boostrapper / chainer引擎。

答案 1 :(得分:2)

文档有点稀疏,但在Visual Studio世界中,自定义引导程序是Bootstrap Manifest Generator。文档从这里开始:

https://msdn.microsoft.com/en-us/library/ms165429.aspx

这里有一篇旧文章:

https://msdn.microsoft.com/en-us/magazine/cc163899.aspx

但由于安装项目已从安装项目中删除然后恢复,因此不清楚有多少信息和支持可用。

答案 2 :(得分:2)

提到更多可能性 - 我的一些同事提到(VS bootstrapper,burn):

  1. 开始编写批处理或脚本,以便彼此调用两个MSI。 如果您没有使用MSI的经验,那么总是一个很好的起点。

  2. 使用5行代码编写您自己的mini setup.exe引导程序,以执行上述操作。

  3. (更具体地说是"第三方工具" :)购买InstallShield或Advanced Installer或InstallAware,这是具有现成GUI的工具,可以轻松实现这种轻松自举。 我会推荐第二个。启动另一个MSI只需两次点击。与其他相似。但三者之间存在巨大差异,特别是InstallAware很特别。

  4. !提及"迷你bootstrappers"这些工具的功能不如Burn或其他工具强大:

    1. 购买准备好的安装套件SetupFactory,它可以用作MSI的引导程序。

    2. 使用InstallShield" Suite"项目类型,如果您购买InstallShield的 Premium 版本。耗资巨大,但拥有友好的用户界面。我在几年之前成功使用它,但我不得不像IS一样处理一些错误(但我想你会发现大多数工具的错误。方式就是这样。)

    3. 有(再次)Burn会派上用场,你可以自己解决潜在的错误或行为...... 只有它可能会在一开始就花费你更多的时间。

    4. ......当然可能会有更多。