全部–
我需要通过自定义操作安静地执行几个任务。从本质上讲,在我放下自己的部分后,我需要安装并许可第三方应用程序:
- 我将我的位安装到应用程序文件夹中
- 我通过FooSetup.exe启动自定义操作来安装第三方应用程序
- 我通过FooLicense.exe启动另一个自定义操作来许可第三方应用程序,该操作在步骤2中安装
在安装程序的提交阶段,我启动此代码以启动第三方应用程序的静默设置:
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Arguments = "/verysilent";
startInfo.FileName = Context.Parameters["TARGETDIR"].ToString() + "fooSetup.exe";
Process myProcess = System.Diagnostics.Process.Start(startInfo);
}
它运行良好——然而,在fooSetup.exe真正完成之前,我无法开始"第三阶段"(许可第三方应用程序)。
处理这种情况的最佳实践是什么?我猜我将不得不在myProcess上设置一个事件处理程序来监视fooSetup.exe的退出?(我已经验证了FooSetup.exe在静默模式下确实会在完成后退出)
有什么例子吗?我是一个商业情报专家,而不是一个C#骑师,所以如果你能给我推荐任何样本/建议,我将不胜感激。
我想Process.WaitForExit()
就是您想要的。http://msdn.microsoft.com/en-us/library/fb4aw7b8.aspx