1

我有一个非常简单的C#Winforms项目,我使用Visual Studio 2010.它使用SQL Express 2008.这是我第一次使用SQL,所以我想要一个动手方法来学习SQL,这个项目让我去做。如何分发SQL Server应用程序?

我想在我的网站上发布我的项目供人们看。但是,我在第一次运行程序时需要设置存储过程,约束和其他内容(例如,要在每个表中放置哪些列)。

我被告知可以使用VS2010的内置功能来完成MSI安装程序,但事实证明这非常复杂,我很快放弃了它。

对我而言,理想的解决方案是简单地压缩可执行文件并让它自动创建数据库,表格,列,存储过程和其他所有代码。这看起来很原始,但看起来简单而直接。唯一的是,我不知道这是否可能。

我对SO社区的问题是你会推荐什么?请记住,我不希望分发模型超过我的应用程序本身的复杂性,正如我所说的,这是一个非常简单的投资组合类型项目。此外,如果您可以提供有关如何处理您的建议的示例和/或说明,那也非常感谢。

在此先感谢!

回答

1

作为一种简单的解决方案,您可以脚本化数据库并将脚本文件包含在项目中(作为资源或作为单独的文件)。启动时,应用程序将检查数据库是否存在,如果不存在,则运行该脚本。
当然,这意味着SQL Server本身已经安装(或以某种方式与您的应用程序捆绑在一起)。

UPD。 创建脚本最简单的方法是从Management Studio中的脚本生成向导(右键单击数据库,任务 - >生成脚本)。我希望这个向导在Express版本中可用。

有关从.NET代码执行脚本的示例,请参阅ths thread

0

你可能想看看Visual Studio database projects

它们将帮助跟踪数据库中的所有对象,并使deployment相当容易,而不需要用自己的代码创建数据库和数据库对象。