【问题标题】:Install SQL Server silently from application setup file从应用程序安装文件静默安装 SQL Server
【发布时间】:2012-06-28 08:05:39
【问题描述】:

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

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

现在当用户选择安装 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 的替代方法(无需用户交互)。

谢谢 西塔

【问题讨论】:

  • 你从哪里得到 StackOverflow 异常?为什么选择验证码?
  • 您是否通过 MSI 文件安装您的应用程序?

标签: c#


【解决方案1】:

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

但无论哪种方式,我认为您根本不应该使用 process.WaitForExit():
但要抓住事件并提供用户反馈。

编辑:

对于无人值守的东西...您可以快速谷歌它!
SQL Server 2008 R2 – Unattended Silent Install

作为一个附加值的问题,我建议为不同的情况(x32、x64、等等)创建几个类似的 ini 配置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    相关资源
    最近更新 更多