如何在软件安装过程中生成数据库后端

本文关键字:数据库 后端 过程中 安装 软件 | 更新日期: 2023-09-27 18:16:16

我用SQL SERVER后端开发了一个小应用程序,我还为应用程序制作了一个安装程序,使用Indigo Rose Setup factory 8.0。我需要的是我想在安装应用程序期间自动创建具有特定用户帐户的数据库后端。

在安装程序之前,要求用户安装SQL server或SQL express作为先决条件,当数据库安装完成后,继续安装软件。我尝试使用SQL脚本,但我不知道如何在安装软件安装之前做到这一点。我虽然也嵌入在主应用程序的数据库创建程序,它将在安装完成后的用户需要执行,但我从来没有尝试过它之前是否有效。

如果需要的话,我使用c#开发系统,后台是SQL SERVER 2005。所以你能给我一些解决这个问题的答案吗?谢谢你

如何在软件安装过程中生成数据库后端

最简单的方法是让安装程序调用sqlcmd.exe来运行sql脚本。要调用它,您需要知道sql实例的数据源(位置)。你需要从用户那里获得这些信息。例如,machinename, machinename'instancename或典型的sqlexpress是machinename' sqlexpress。

http://msdn.microsoft.com/en-us/library/ms165702.aspx

您也可以绕过预要求并为您的客户安装sqlexpress。有一个命令行来安装它:

http://msdn.microsoft.com/en-us/library/ms144259.aspx

另一个不依赖sql的选项是编写自己的自定义操作(命令行/API),在脚本中的GO语句之间进行解析,并使用ADO.net执行。

安装之外的另一个选项是将安装和配置分开。安装程序只放置位,数据库是在运行时通过产品运行时的配置阶段创建的。这有很多好处,包括能够在安装阶段之后和配置阶段之前更新您的位(使用补丁或自动)。你还可以提供更好的交互体验,并在运行时处理问题——在安装过程中,你的选择是失败安装并回滚,这是一个糟糕的体验。

希望对你有帮助。

Bryan已经给了你很好的建议。我的建议是让应用程序本身能够通过运行部署脚本来部署数据库。您可以使用像bubutilscmd这样的库来解析.sql脚本并从应用程序内部执行批处理。我还建议让您的脚本能够升级数据库,而不仅仅是部署它。当您发布应用程序的v. 2.0版本时,这将非常方便。参见版本控制和数据库。

需要考虑的一件事是,初始数据库部署通常需要提升特权上下文。有一些选项,请参阅教你的应用程序与Windows Vista用户帐户控制很好地配合。