使用 C# 应用程序安装 SQL Server Express

Posted

技术标签:

【中文标题】使用 C# 应用程序安装 SQL Server Express【英文标题】:Install SQL Server Express with C# application 【发布时间】:2011-10-28 09:48:42 【问题描述】:

我有一个需要安装 SQL Server 才能工作的应用程序,我需要为该应用程序制作一个安装程序,其中包括 SQL Server Express 的安装,以防它尚未安装在客户端的计算机中。

我尝试让我的项目有安装SQL Server 2005 Express Edition SP2 和选项Download prerequisites from the same location as my application 的先决条件,但它不起作用,因为它会引发诸如

之类的错误

错误 43 先决条件的安装位置尚未设置为 “组件供应商的网站”和文件 “.NET Framework 3.5 SP1”项中的“DotNetFX35SP1\dotNetFX30\WCS_64.msp” 无法在磁盘上找到。

我一直在互联网上搜索,但我无法让任何方法起作用。

我遇到一个网页(我找到的唯一示例)使用EnableLaunchApplication.js 有一个复选框来在安装后运行程序。

但是SQL Server Express 安装呢?

我在 C# 中使用 Visual Studio 2008

编辑:

在我的设置项目中,我有一个 PostBuildEvent

cscript.exe"$(ProjectDir)EnableLaunchApplication.js" "$(BuiltOuputPath)"

但我从来没有得到文件EnableLaunchApplication.js(这不是我做的项目,但我必须想办法解决这个问题..)。

【问题讨论】:

您想在您的媒体中包含 SQL Express 的设置,还是在设置运行时从 Internet 下载它? @DavidePiras 第一个选项,将其包含在我的媒体中 所以检查这个:msdn.microsoft.com/en-us/library/… 如果您设置了“从与我的应用程序相同的位置下载先决条件”选项,那么您只需将包包含在您的 CD/网络共享中。跨度> @DavidePiras PostBuildEventEnableLaunchApplication.js 怎么样? 这就是我喜欢 SQLite 的原因 :) system.data.sqlite.org/index.html/doc/trunk/www/index.wiki 【参考方案1】:

我在 VS2005 中做到了这一点,一切都很完美。但我和你有同样的问题。我认为你都做了一些正确的事情。你说“我终于在安装我的应用程序时执行了 SQL Server Express 安装程序”但是如何?!运行一个 msi 文件?!您是否检查过以前安装的 SQL Server 实例引擎?为什么要在 SQL Server 之前安装应用程序?!

另一个问题是,如果客户端已经有 SQL Server 引擎,它是一个很好的属性和完善的,你不必安装它。

首先创建一个标准安装过程 dude.install 先决条件,如果已安装,请安装它们,如果已安装,请使用它们。

最后一个。安装 Windows 安装程序作为先决条件。

尝试在共同的过程中做每一件事。

【讨论】:

我的问题是客户想在没有互联网的情况下安装 SQL Express,所以我需要以某种方式在 CD 中提供它。如果我检查Download prerequisites from the same location as my application,那么所有先决条件都将尝试从应用程序文件夹安装,并且我没有 .NET Framework 或 Windows 安装程序.. 所以!!!通过在先决条件列表中检查它们来放置它们?把它们放在那里有什么问题吗?!! 好吧,如果我在我的电脑上尝试,它有 .NET 3.5 和一切,只是检查 SQL Server 2005 .. 它没有安装任何东西 :) 所以这很常见。在您的系统中安装了所有先决条件。检查它们以将它们安装在客户端上。我无法理解你,伙计:( 所以我将 Sql Express 作为先决条件包含在内,在安装它时,它告诉我计算机中已经安装了一个 SQL 实例,我无法继续

以上是关于使用 C# 应用程序安装 SQL Server Express的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 应用程序部署 SQL Server Compact

使用了数据库的c#程序,在一台没有安装SQL Server的计算机上能否使用?

使用 SQL Server 数据库发布 C# 桌面应用程序

每个客户端上的 C# Sql-server

连接字符串 C# Entity Framework SQL Server Express

如何使用 C# 可靠地确定安装了 SQL Server 2008 的哪些组件?