2015-04-03 110 views
1

我在安裝應用程序上安裝我的WPF產品的所有需求,其中一個需求是SQL Server 2012 Express,下面的代碼是在爲靜默安裝生成配置文件後安裝它:以編程方式安裝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=""[email protected]"" /CONFIGURATIONFILE={0}\SQLServer\ConfigurationFile64.ini /HIDECONSOLE", setupFolder); 
     else 
      commandLine = string.Format(@"{0}\SQLServer\sql86\setup.exe PCUSOURCE={0}\SQLServer\sql86 /SAPWD=""[email protected]"" /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); 
    } 

有代碼中沒有錯誤,但它不工作..當我運行命令窗口出現和消失,並沒有發生的代碼。

UPDATE:

當我用:

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

的安裝運行,但沒有配置文件,當我用:

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

它給了我這個錯誤「系統找不到指定的文件「!!! 該文件存在於相同的文件夾!

請你能幫我發現錯誤。

在此先感謝。

+0

安裝應用程序是否在管理員權限下運行? – 2015-04-03 15:42:25

+0

我試圖用管理權限運行它(右鍵單擊並以管理員身份運行) – 2015-04-03 16:09:32

回答

2

ProcessStartInfo要求FileName屬性有效。上面的代碼沒有設置它,但將所有內容都作爲參數傳遞。

可能需要將命令行分爲兩部分。要運行的可執行文件和要傳遞的參數

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

Steve,它可以工作,但我不能運行配置文件? – 2015-04-03 18:48:36

+0

運行Sql Server的自動安裝並非易事。我不能說爲什麼你的配置文件不起作用。也許最好用你的配置文件的細節和收到的錯誤發佈一個新的問題。 – Steve 2015-04-03 19:05:08

+0

謝謝史蒂夫你的時間,你可以檢查問題更新請。 – 2015-04-03 19:12:45