2

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

我可以将其添加到应用程序的先决条件列表中,并且它会在应用程序的设置过程中安装。

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

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

谢谢,埃德

4

1 回答 1

3

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

我见过在桌面上使用 SQL Server Express 的唯一一个几乎有意义的地方是作为Microsoft 小型企业会计应用程序的一部分,在这种情况下,您通常将该程序安装在主要目的是为您的会计工作的机器上商业。

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

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

  • 在应用程序首次启动时从客户端代码创建它
  • 使用自定义安装程序操作创建它(由于 msi 权限而难以正确处理)
  • 分发预构建 *.mdf 文件并使用自定义安装程序操作或在应用程序首次启动时附加。
于 2009-06-10T21:09:13.753 回答