从自定义操作(托管程序集中的公共方法)返回安装返回类型

时间:2009-08-03 12:47:28

标签: .net installshield

安装Shield 2009 Premier,基本MSI项目。 自定义操作属性包括:

  1. 类型:在托管程序集中调用公共方法
  2. 位置:存储在二进制表中
  3. 指定了类和方法名称,它显示了一个消息框(这样我确定它被调用)并返回13个整数值。 [没有选择任何退货,不知道该选择什么]
  4. 退货处理:同步(检查退出代码)
  5. 脚本内执行:系统上下文中的延迟执行
  6. 安装执行顺序:安装初始化后
  7. 安装执行条件:NOT REMOVE
  8. 所以在安装过程中,我在公共方法中获取了消息框,但安装没有退出?如何从自定义操作的返回类型(托管程序集的公共方法)退出安装?

1 个答案:

答案 0 :(得分:0)

确保函数的返回类型为intuint(或Int32UInt32),并且您没有使用自定义签名。通过此组合,返回值将直接传递给Windows Installer,并且值1602,1603等符合您对http://msdn.microsoft.com/en-us/library/aa368072(VS.85).aspx的期望。使用自定义签名或返回属性或除简单整数之外的返回类型,Windows Installer将始终传递ERROR_SUCCESS。如果您不关心退出的确切内容(特别是在日志中),抛出异常将导致ERROR_INSTALL_FAILURE传递给Windows Installer。