我从应用程序启动安装程序,然后同步等待它完成。
Process installerProcess = Process.Start("TheProcessName");
// Must EnableRaisingEvents before calling synchronous method WaitForExit
// according to MSDN documentation.
installerProcess.EnableRaisingEvents = true;
installerProcess.WaitForExit();
我的应用程序需要知道此安装程序是否成功完成。如果用户取消它或因任何原因失败,我需要找出答案。
我尝试了进程的ExitCode
属性,认为'0'表示成功,所有其他代码都表示失败,但它显示相同的退出代码,表示安装成功或不成功,所以现在我很难过。有任何想法吗?或者,有没有比我目前更好的方式呢?
答案 0 :(得分:1)
您使用的是什么类型的InstallShield项目? MSI或脚本驱动?我总是让msixec和setup.exe返回有意义的退出代码。有些东西不在这里。
答案 1 :(得分:0)
我认为Windows用于检查安装程序兼容性的方法是观察Uninstall registry key下的密钥数量。如果这种情况增加,那么安装成功的可能性很大。在您的情况下,您可能只查找由您启动的特定安装程序安装的任何相关注册表项,但其卸载密钥可能是一个不错的选择。