【问题标题】:MSI wrapping another InstallMSI 包装另一个安装
【发布时间】:2015-01-28 17:00:00
【问题描述】:

我正在使用 InstallShield 的 AdminStudio 2014(嵌入在 Visual Studio 2013 中)并且有一个基本的 MSI 项目。我最近将 WiX 添加到我的 CA 项目中。

安装的想法是将供应商的驱动程序与我们的附加文件一起打包。对于最终用户来说,它应该看起来像是一次安装。我最初的尝试是将供应商安装文件放在我的 installdir 中的子目录中,并在其安装上运行自定义操作以及许多所需的命令行参数(包括 SILENT)。但是,我遇到的问题是它有时会返回退出代码 1310(需要重新启动),这导致我对退出代码的检查失败。

让我先说一下,我仍在尝试完全理解一些“脚本内执行”和序列。

我的第二次尝试是在 c# 中编写一个函数来执行并​​捕获退出代码,然后使用返回的退出代码设置一个属性,或者自己设置 ISSCHEDULEREBOOT。但是,由于我将安装放置到我的安装目录,所以我在 InstallFiles 之后延迟运行它,而且似乎我不允许从延迟的 CA 设置属性,但是(这是我的理解)我不能立即执行,因为在执行脚本 (?) 之前文件尚未放置。第 22 条。

接下来我想到了在我的运行之前安装 prereq,但这不会让我在卸载期间卸载它 (?)。

我查看了链式 MSI(反对似乎有很多建议),但我从供应商那里获得了一个类似 CD 的大型媒体(多个目录和文件),其中包含 setup.exe 而不是 InstallShield 似乎提供的 MSI正在寻找。

我有许多 CA 和其他部分都可以正常工作。我确信我一直遇到的这些障碍是由于我对架构和流程缺乏了解。在过去 6 个月左右的时间里,我一直在处理一组安装,但我知道有很多关于机制的知识。

提前感谢您的帮助。

【问题讨论】:

    标签: windows-installer installshield custom-action


    【解决方案1】:

    WiX 有一个名为 Burn 的引导程序,用于处理链接包以进行安装和卸载。它被 Visual Studio 等产品使用。

    InstallShield 的版本是 Suite Installers。这仅在 InstallShield Premiere 版中可用,我不确定它是否在 AdminStudio 版中。

    【讨论】:

    • 到目前为止我只尝试了基本安装,我现在正在尝试设置一个套件,但它似乎确实是我所追求的,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2010-09-21
    相关资源
    最近更新 更多