我正在安装SQL Server,如下面的代码
Process.Start("Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /IACCEPTSQLSERVERLICENSETERMS");
如果无法通过先决条件检查,安装程序会立即消失,而不会向用户显示错误消息。
我可以通过查看SQL Server的程序文件文件夹来查看失败的原因,但是安装软件的人不知道在哪里查看。
所以我想让用户知道错误是什么。我怎样才能做到这一点?
我面临的另一个问题是,因为这是一个进程,程序不会等到SQL Server安装完成。有没有办法运行一个进程并等待它完成?
答案 0 :(得分:1)
所以我想让用户知道错误是什么。我怎样才能做到这一点?
通过读取stderr和stdout流,假设Setup.exe
将使用它们来输出错误消息。
我面临的另一个问题是因为这是一个问题 进程,程序不等到SQL Server安装到 完。有没有办法运行一个进程并等待它完成?
您可以等待退出流程,如下所示:
var process = Process.Start( .... );
// wait.
process.WaitForExit();
有关这两个主题的更多信息,请访问:How to spawn a process and capture its STDOUT in .NET? 在这里Process.start: how to get the output?
答案 1 :(得分:1)
/q
标志用于静默安装,因此它不会向用户显示任何信息。尝试没有/q
标志。