如何将自定义桌面应用程序数据库安装到SQL Express?

时间:2009-06-10 21:02:31

标签: sql-server deployment sql-server-express setup-project

我有一个WPF桌面应用程序,它使用自定义数据库进行存储。 我需要准备一个安装项目(来自Visual Studio 2008)(完整设置,而不是ClickOnce)。

我可以将应用程序的先决条件列表添加到应用程序中,并在应用程序设置期间安装。

我的问题是:如何在安装过程中运行脚本来创建应用程序所需的数据库?或者如何在安装过程中将数据库还原到客户端计算机?

另一个相关问题,如果客户端计算机上已存在会发生什么?如何检测实例名称和连接数据?然后如何能够 - 如果需要 - 更改Entity框架用于连接到该数据库的连接字符串?

谢谢, 编

1 个答案:

答案 0 :(得分:3)

SQL Server Express Edition对于本地数据库来说通常是一个非常糟糕的选择。它是一个服务器级引擎,喜欢使用大量资源并作为服务运行(因此,即使您的应用程序未运行,它也会耗尽这些资源)。换句话说,它属于服务器。

我见过SQL Server Express在桌面上使用的唯一有意义的地方是Microsoft Small Business Accounting应用程序的一部分,在这种情况下,您通常会将该程序安装在主要用途的计算机上会计业务。

你应该做的是使用桌面或进程内类引擎,如SQL Server Compact Edition ,Sqlite,甚至是Access。这也将极大地简化您的部署。

如果您坚持使用此功能,请知道安装程序将在系统上创建新的sql server实例。 SQL Server对此没问题。但是,您需要在应用的连接字符串中考虑到这一点,这可能会更复杂一些。此外,要设置数据库,您有几个选项:

  • 首次启动应用时从客户端代码创建
  • 使用自定义安装程序操作创建它(很难正确,因为msi权限)
  • 分发预构建* .mdf文件并附加自定义安装程序操作或首次启动应用程序。
相关问题