从应用程序安装文件静默安装SQL Server

时间:2012-06-28 08:05:40

标签: c#

作为安装我的应用程序(WPF应用程序)的一部分,需要安装SQL Server以及先决条件。因此,当用户选择安装SQL Server的选项时,在应用程序安装过程中,需要使用随安装程序提供的configuration.ini文件进行静默安装。

所以我所做的是通过具有执行SQL服务器命令的代码准备一个名为“InstallSQL.bat”的批处理文件。

现在,当用户选择安装SQL Server时,从安装代码开始执行批处理文件。代码如下

        int ExitCode;
        ProcessStartInfo ProcessInfo;
        Process process;            

        ProcessInfo = new ProcessStartInfo(batchFilePath);
        ProcessInfo.CreateNoWindow = true;
        ProcessInfo.UseShellExecute = false;

        ProcessInfo.WorkingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
        // *** Redirect the output ***
        ProcessInfo.RedirectStandardError = true;
        ProcessInfo.RedirectStandardOutput = true;
        process = Process.Start(ProcessInfo);
        process.WaitForExit();
        MessageBox.Show("ExitCode: " + process.ExitCode);

执行安装时,在安装SQL Server时,将解压缩SQL Server安装文件并打开一个控制台窗口,指示安装正在进行中。 问题是,在此控制台窗口中一段时间​​后会出现一条消息,指出“由于stackoverflowexception导致进程终止”。有人可以帮助我安静地安装SQL Server(没有用户交互)。

由于 Nishitha

1 个答案:

答案 0 :(得分:0)

好吧,Stackoverflow异常总是一件坏事 (我猜想在Process.WaitForExit()

内部时会捕获异常

但无论如何,我认为你根本不应该使用process.WaitForExit():
但抓住事件并给予用户反馈。

编辑:

对于无人看管的东西......你可以快速谷歌吧! SQL Server 2008 R2 – Unattended Silent Install

作为问题的附加值,我建议在不同情况下创建几个ini配置(x32,x64,等等......)