0

我正在编写一个套件安装程序,它为不同的功能集安装多个基本 msi。我遇到了一些问题,其中一个 msi 安装失败,因为某些 dism 功能没有正确安装并且它回滚了整个 Suite 安装。

我想要做的是如果其中一个 msi 组件无法安装,我想捕捉失败并让客户选择继续安装(没有失败的组件)或停止/回滚到目前为止的安装。我不知道如何从 Suite 项目的 msi 中捕获错误代码。

4

1 回答 1

0

您没有指明您使用的是哪个版本的 InstallShield Premium。自从他们引入项目类型以来,InstallShield 添加了很多功能。

添加 MSI 程序包时,应设置成功安装的检测过程。安装包后,套件安装程序会测试此情况。如果为真,则安装成功,否则,安装失败。它不会从 MSI 收集错误代码。

如果您真正想弄清楚的是如何处理失败的 DISM 安装,那将取决于失败的原因。例如,存在一个已知问题,即 .NET Framework 3.5 将不会安装在 Windows 10 Creators 更新上,因为 DISM 调用无法返回值。如果您有自己的 Powershell 调用或对 DISM 的托管代码调用,那么一种方法是编写自定义操作以设置套件属性值并将其用作安装包、显示消息等的测试。

于 2018-02-05T20:01:05.570 回答