如何判断安装程序(特定于InstallShield)是否成功完成?

时间:2010-05-13 14:28:07

标签: c# installer installshield

我从应用程序启动安装程序,然后同步等待它完成。

Process installerProcess = Process.Start("TheProcessName");

// Must EnableRaisingEvents before calling synchronous method WaitForExit 
// according to MSDN documentation.
installerProcess.EnableRaisingEvents = true;

installerProcess.WaitForExit();

我的应用程序需要知道此安装程序是否成功完成。如果用户取消它或因任何原因失败,我需要找出答案。

我尝试了进程的ExitCode属性,认为'0'表示成功,所有其他代码都表示失败,但它显示相同的退出代码,表示安装成功或不成功,所以现在我很难过。有任何想法吗?或者,有没有比我目前更好的方式呢?

2 个答案:

答案 0 :(得分:1)

您使用的是什么类型的InstallShield项目? MSI或脚本驱动?我总是让msixec和setup.exe返回有意义的退出代码。有些东西不在这里。

答案 1 :(得分:0)

我认为Windows用于检查安装程序兼容性的方法是观察Uninstall registry key下的密钥数量。如果这种情况增加,那么安装成功的可能性很大。在您的情况下,您可能只查找由您启动的特定安装程序安装的任何相关注册表项,但其卸载密钥可能是一个不错的选择。