我们一直在使用Visual Studio 2010的数据库项目数内部或单一客户的项目,因为他们被首次引入,并且它们是为我们好远伟大的工作。 现在,我们正在使用他们的第一次有“盒装”产品,需要打包安装在任意客户站点。
到目前为止,我所看到的一切都表明,我船.dbschema
文件加上vsdbcmd
工具以及它作为我的MSI的部分要求,然后启动该工具作为安装的一部分。
这真的是完成这一任务的最简单的方法? 我们这样做是为我们的初步测试阶段,但到目前为止,它似乎是一个快速的黑客,而不是一个良好的长期部署策略。 特别是,我们不得不安装我们的软件之前, 同时安装的SQL Server CE 32位和SQL Server CE的64位到机器上。 千方百计打包的内容,我们需要的只是MSI中失败了,因为我们是从一个或另一个架构缺少程序集。
我们看着另一件事是运送输出sqlcmd
被当我们“部署”在制作的时候该项目产生的文件,但这些包括我们内部开发服务器(和它并不像数据库中的SQLCMD变量的硬编码服务器名称名字),这意味着我们有服务器安装过程中编辑.SQL脚本。 同样,这工作,但它似乎像一般一个坏主意。
我们最终的做法,我们将有可能最终做生产,如果我不能来的东西尤为明显,是手动生产创建和升级脚本,根据部署输出,然后包括我们的安装程序的自定义工具,执行脚本(通过SqlClient
或sqlcmd
或类似的东西)基于用户交互,但是这似乎是击败很多的数据库项目的目的。
是否还有其他的方法来建立和包装的自动化部署VS2010 DB项目,到不同的服务器,不涉及安装2个版本的SQL CE和送货与我们安装了一块的Visual Studio?