使用 C# 窗体应用程序静默安装 SQL Server

Ram*_*ama 3 c# sql sql-server sql-server-2008

我有一个用 C# 开发的 Windows 应用程序,我需要将它安装在一台只安装了操作系统和 .Net Framework 的 PC 上。现在我必须提供一个选项,以使用此 Windows 应用程序在该 PC 上安装 SQL Server 2008 R2 Express 版。我已经为安装/卸载 Windows 服务编写了代码,但对 sql server 安装感到震惊。有人可以帮我做这件事吗?

Rem*_*anu 6

遵循如何在应用程序中嵌入 SQL Server Express 中的指南。它涵盖了您需要的一切,包括选择正确的发行版、选择合适的安装方法(wpi 与 setup.exe)以及如何配置安装。wiki 甚至有关于如何检测以前的 Express 安装、如何从 C# 调用 SQL Express 的 WPI(Web 平台安装程序)的 C# 代码:

System.Diagnostics.Process.Start(
  @"C:\Program Files\Microsoft\Web Platform Installer\webplatforminstaller.exe",
  " /id SQLExpress");
Run Code Online (Sandbox Code Playgroud)

或使用“wpi://” URL 处理程序:

System.Diagnostics.Process.Start("wpi://SQLExpress/");
Run Code Online (Sandbox Code Playgroud)

或使用 Web App Galery:

System.Diagnostics.Process.Start(
  "http://www.microsoft.com/web/gallery/install.aspx?appsxml=&appid=SQLExpress");
Run Code Online (Sandbox Code Playgroud)

最后,使用 SQL Express 设置(推荐用于高级配置):

System.Diagnostics.Process processObj = 
  System.Diagnostics.Process.Start(@"c:\temp\sqlsetup\setup.exe",

@"/q /Action=Install /Hideconsole /IAcceptSQLServerLicenseTerms=True 
 /Features=SQL,Tools /InstanceName=SQLExpress
 /SQLSYSADMINACCOUNTS=""Builtin\Administrators"" 
 /SQLSVCACCOUNT=""DomainName\UserName"" /SQLSVCPASSWORD=""StrongPassword""");
Run Code Online (Sandbox Code Playgroud)

它有完整的设置参数列表。