【问题标题】:Install SQL Server 2012 Express Programmatically以编程方式安装 SQL Server 2012 Express
【发布时间】:2015-04-03 15:37:35
【问题描述】:

我在安装应用程序上安装我的 WPF 产品的所有要求,其中一个要求是 SQL Server 2012 Express,下面的代码是在我生成静默安装的配置文件后安装它:

private void SetupSQLServer()
{
        string result = "";
        string commandLine = "";

        if (os64)
            commandLine = string.Format(@"{0}\SQLServer\sql64\setup.exe PCUSOURCE={0}\SQLServer\sql64 /SAPWD=""p@ssw0rd"" /CONFIGURATIONFILE={0}\SQLServer\ConfigurationFile64.ini /HIDECONSOLE", setupFolder);
        else
            commandLine = string.Format(@"{0}\SQLServer\sql86\setup.exe PCUSOURCE={0}\SQLServer\sql86 /SAPWD=""p@ssw0rd"" /CONFIGURATIONFILE={0}\SQLServer\ConfigurationFile32.ini /HIDECONSOLE", setupFolder);

        startInfo.WorkingDirectory = setupFolder;
        startInfo.Arguments = "/c " + commandLine;
        startInfo.RedirectStandardOutput = true;
        startInfo.UseShellExecute = false;

        process.StartInfo = startInfo;

        try
        {
            process.Start();
        }
        catch (Exception e)
        {
            result = e.Message;
        }

        result = result + "\n" + process.StandardOutput.ReadToEnd();

        UpdateStepResult(result);
    }

代码中没有错误,但它不起作用..当我运行代码时,命令窗口出现并消失,没有任何反应。

更新:

当我使用时:

fileName = string.Format(@"{0}\SQLServer\sql64\setup.exe", setupFolder);

安装运行但没有配置文件,当我使用时:

fileName = string.Format(@"{0}\SQLServer\sql64\setup.exe /CONFIGURATIONFILE={0}\SQLServer\sql64\ConfigurationFile64.ini", setupFolder);

它给了我这个错误“系统找不到指定的文件”!!! 该文件存在于同一文件夹中!

请你帮我找出错误。

提前致谢。

【问题讨论】:

  • 安装应用程序是否在管理员权限下运行?
  • 我尝试以管理员权限运行它(右键单击并以管理员身份运行)

标签: c# wpf command-line sql-server-2012-express


【解决方案1】:

ProcessStartInfo 要求 FileName 属性有效。您上面的代码没有设置它,而是将所有内容作为参数传递。

您可能需要将命令行分成两部分。要运行的可执行文件和要传递的参数

   if (os64)
   {
        fileName = string.Format("{0}\SQLServer\sql64\setup.exe", setupFolder);
        commandLine = string.Format(@"PCUSOURCE={0}\SQLServer\sql64 /SAPWD=""p@ssw0rd"" /CONFIGURATIONFILE={0}\SQLServer\ConfigurationFile64.ini /HIDECONSOLE", setupFolder);
    }
    else
    {
         // Same for 32 bit
         .....
    }
    ....
    startInfo.FileName = fileName;
    .... 

【讨论】:

  • 自动安装 Sql Server 并不是一件容易的事。我不能说为什么你的配置文件不起作用。也许最好发布一个新问题,其中包含您的配置文件的详细信息和收到的错误。
  • 感谢 Steve 抽出宝贵时间,请检查问题更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多