简体   繁体   English

在Installshield 2014 Suite中捕获MSI错误

[英]Capture msi errors in Installshield 2014 Suite

I am writing a Suite installer that installs multiple basic msi's for different feature sets. 我正在编写一个套件安装程序,可以为不同的功能集安装多个基本的msi。 I am having some issues where one of the msi installs fails because of some dism functions not installing correctly and its rolling back the entire Suite install. 我遇到了一些问题,其中由于某些dism功能无法正确安装而导致msi之一安装失败并回滚了整个Suite安装。

What i want to do is IF one of the msi components fail to install, i want to catch the failure and give the customer the option to either continue the install(without the failed component) or stop/rollback the install so far. 我想做的是,如果msi组件之一无法安装,我想抓住故障,并为客户提供继续安装(没有发生故障的组件)或到目前为止停止/回滚安装的选项。 I cant figure out how to catch the error codes from the msi inside of the Suite project. 我无法弄清楚如何从Suite项目中的msi捕获错误代码。

You did not indicate what version of InstallShield Premium you are using. 您没有指出要使用的InstallShield Premium版本。 InstallShield has added a lot of functionality since they introduced the project type. 自从他们引入了项目类型以来,InstallShield已添加了许多功能。

When you add a MSI package, the detection process for a successful install should be all set. 当您添加MSI软件包时,应该已全部设置成功安装的检测过程。 After package is installed, the Suite installer test this condition. 安装软件包后,套件安装程序将测试此情况。 If it is true, then the install is successful, if not, it fails. 如果为true,则安装成功,否则为失败。 It doesn't collect the error code from the MSI. 它不会从MSI收集错误代码。

If what you are really trying to figure out is how to handle failed DISM installs, that will depend on what is failing. 如果您真正想找出的是如何处理失败的DISM安装,那将取决于失败的原因。 For instance there is a known issue where .NET Framework 3.5 will not install on Windows 10 Creators update due to a failure of the DISM call to ever return a value. 例如,存在一个已知的问题,由于DISM调用无法返回值,因此无法在Windows 10 Creators更新上安装.NET Framework 3.5。 If you have your own Powershell call or Managed code call to DISM then one approach is to code your custom action to set suite property value and use that as a test for installing packages, displaying messages, etc. 如果您有自己的Powershell调用或对DISM的托管代码调用,则一种方法是对自定义操作进行编码,以设置套件属性值,并将其用作安装软件包,显示消息等的测试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM