2012-05-03 80 views
3

自从第一次引入这些项目以来,我们一直在为几个内部或单个客户项目使用Visual Studio 2010的数据库项目,到目前为止他们对我们的工作非常好。现在我们第一次使用它们,需要打包安装在任意客户站点的“盒装”产品。在没有VSDBCMD的情况下部署VS2010数据库项目?

到目前为止我看到的所有内容都表明,我将.dbschema文件加上vsdbcmd工具及其要求作为我的MSI的一部分发送,然后在安装过程中启动该工具。

这真的是最简单的方法来完成这项任务?我们正在为我们的初始测试版测试做这件事,但到目前为止,它似乎是一个快速入侵,而不是一个好的长期部署策略。特别是,我们不得不安装的SQL Server CE 32位和SQL Server CE的64位在机器上安装我们的软件之前。每次尝试打包我们在MSI中需要的东西都失败了,因为我们错过了一个或另一个架构的程序集。

我们研究的另一件事是运输输出sqlcmd文件,这些文件是在构建时“部署”项目时生成的,但这些文件包括我们内部开发服务器的硬编码服务器名称(而不是SQLCMD像数据库名称这样的变量),这意味着我们必须在服务器安装期间编辑.sql脚本。再说一遍,但它总的来说似乎是一个糟糕的主意。

我们的最后一种方法,以及如果我不能提出一些问题,我们最终可能会为生产做的事情是,根据部署输出手动生成创建和升级脚本,然后将自定义工具与我们的安装程序根据用户交互执行脚本(通过SqlClientsqlcmd或类似的东西),但这似乎损害了数据库项目的许多目的。

还有没有其他的方法来建立和包装的自动化部署VS2010 DB项目,到不同的服务器,不涉及安装2个版本的SQL CE和送货与我们安装了一块的Visual Studio?

+0

嗨迈克尔!无论如何,我的回答有帮助吗? –

+0

很好,我们已经断定数据库项目不是为外部部署而构建的。 –

回答

1

据我所知,你有什么建议最初可能是最好的。

微软似乎从一开始就知道这一点,因为他们建议,并就如何构建服务器上安装vsdbcmd,而无需Visual Studio的说明。您可以轻松地将此思路扩展到在Customers网站上进行安装。

虽然你可以拿出你自己创建的输出文件和他们做一些后期的构建过程的方法,你刚刚移动的复杂性在其他地方创造的代码,另一位需要维护。

的SQL CE的安装程序是没有那么大,并使其成为您的MSI的一部分,使事情变得简单,打包在一起,确保您得到最大的功能从数据库项目。

我回答了类似的问题,这并链接到相关的MS文章,在这太问题:
Can I do database deployments, without installing Visual Studio or VSTSDB?

+0

确实如此,SQL CE安装程序并不那么大,但很难向客户的IT部门证明我们为什么需要为一个应用程序安装* 3 *版本的SQL。但它基本上看起来像没有好的方法来做到这一点,所以这是我会得到的最好的答案。 –

相关问题