我使用项目助手使用InstallShield 2016 professional创建了一个Basic MSI安装程序项目。我没有创建任何组件/功能(只创建了deafulkt功能)。 安装程序应首先运行控制台应用程序(我作为安装程序的一部分添加,但不会安装),如果没有出现错误,只需将WPF应用程序(DLL和.exe)复制到客户端位置。
理想情况下,在采访对话建议之后,步骤将是:
在我阅读的文档中,通过自定义操作可以运行可执行文件,但我无法理解或查找有关如何将参数(从命令行除外)传递到控制台应用程序或获取最终状态的详细信息。控制台应用。
任何人都可以建议我如何实现这些步骤?
更新
在InstallShield中,可以在自定义操作之间创建属性,然后在需要的其他位置调用这些值,如:[PropertyName]。
我可以这样做为可执行命令行参数添加三个属性:
i=[DB_CONN_INSTANCE_NAME] u=[DB_CONN_USER_NAME] p=[DB_CONN_PWD]
答案 0 :(得分:1)
如何检查完成并且没有发生错误?
您的控制台应用程序应返回ExitCode。 0(零)表示成功,任何其他数字将失败。在自定义操作(CA)属性中,您应为“返回处理”属性选择“同步(检查退出代码)”。由于您希望在安装时运行此CA,因此应为“In-Script Execution”属性选择“延迟执行”。您应该写条件至少是因为您希望仅在安装期间发生这种情况,而不是在用户删除产品时,是吗?在这种情况下,请完成“Install Exec Condition”。如果您设置以上所有内容,我相信此CA的MSI类型编号将为1026。
我可以在哪里找到更详细的文档?
在这里:Custom Actions
编辑:
如果我测试应用程序,我没有得到控制台应用程序运行的任何提示。另外,如果可执行文件成功,我怎么能指定继续第二个自定义函数(应该安装WPF应用程序)?
您需要设置“Install Exec Sequence”以便在特定时间运行您的CA.延迟类型的CA必须在“InstallFiles”之后的某处安排。有关如何安排CA读取的更多信息:Sequencing Custom Actions。当您使用“同步(检查退出代码)”属性安排控制台应用程序CA时,安装程序将在CA退出时等待,并且仅在该继续序列之后。应在第一个CA之后安排第二个CA.很简单,你肯定是在正确的轨道上。
是否可以调试基本MSI的步骤?
我不确定你在这里问什么。据我所知,您使用的是InstallShield Studio,因此请运行debug并逐步执行。如果您询问有关调试CA本身的信息,请查看以下资源:Debugging Custom Actions
答案 1 :(得分:1)