2012-06-28 63 views
0

至於安裝我的應用程序(WPF應用程序)的一部分,需要安裝SQL Server以及一個先決條件。因此,當用戶選擇應用程序的安裝過程中安裝SQL Server的選項,它需要使用提供的安裝在configuration.ini文件得到安裝靜默。從應用程序安裝文件靜默安裝SQL Server

所以我所做的就是準備通過具有執行SQL服務器的命令代碼名爲「InstallSQL.bat」的批處理文件。

現在,當用戶選擇安裝SQL服務器,從安裝代碼,該批處理文件將被執行。代碼如下

 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

+0

你從哪兒弄來的StackOverflow的異常?爲什麼選擇CAPTCHA? –

+0

您是否正在通過MSI文件安裝您的應用程序? –

回答

0

那麼,#1例外是總是一件壞事
(我猜的例外是當內部被擠壓Process.WaitForExit()

但無論哪種方式,我認爲你不應該使用process.WaitForExit()在所有:
但趕上事件,並給予用戶反饋

編輯:

對於無人看管的東西...你可以很快Google!
SQL Server 2008 R2 – Unattended Silent Install

爲問題的附加值,我建議創建幾個INI​​配置一樣,針對不同的情況(X32,X64等)

相關問題