2015-10-20 54 views
0

我有现有的产品,它使用installshield 2011来生成msi。InstallShield的中止和退出命令无法在windows 2012 r2服务器上运行

目前我们计划支持windows server 2012 R2,但现有的代码不起作用。

我们有一个场景,我们检查某些依赖项是否丢失,我们中止或退出,但这不适用于Windows 2012 R2。

是否有任何其他方式来处理这个问题,我已经在一些论坛上检查过它返回“ERROR_INSTALL_FAILURE”,但是我不能从customAction的大部分部分返回。

我该如何中止安装在同一点。

感谢,

回答

1

我相信不存在与未促成ERROR_INSTALL_FAILURE从被沿途的固定的安装InstallScript自定义操作返回abort问题;您可以通过在您使用的版本之后查看InstallShield版本的发行说明来验证此情况。如果升级是一个选项,那可能是最简单的,因为InstallShield 2011并不正式支持Windows Server 2012 R2。 (这有助于我的雇主继续支付我的费用。)

如果您想修复您拥有的行为,这听起来像您说的问题是您拥有深层嵌套功能,无法轻松将ERROR_INSTALL_FAILURE自定义操作入口点。最少侵入性的变化可能是使用例外和exception handling。您可以将try/catch/endcatch放入您的入口点函数(或多个函数)中,并使用Err.Raise在先前使用abort的位置引发异常。与链接示例不同,Err.Raisetry/catch/endcatch将故意处于不同的功能。

请注意,如果您使用abort使用Err.Raise改变功能与其他功能调用时,观察到的行为可能与函数的区别,除非他们同样异常翻译成他们首选的行为。

相关问题