是否可以使用 TeamCity 部署 VS 2010 数据库项目?
我正在构建我的整个解决方案,并将网站部署到我的服务器,这一切都很好。
我要触发的最后一步是部署数据库项目,该项目生成一个 sql 脚本并部署它。
我已选择"创建部署脚本 (.sql) 并部署到数据库"选项作为部署操作,我的配置目标设置为生成和部署数据库项目,但我只是不知道如何让 TeamCity 和 MSBuild 触发它。
安装Visual Studio才能正常工作。
对于原始 SQL Server 2005/2008 数据库项目类型:
- 创建运行器类型 Visual Studio 的生成步骤来生成解决方案。
- 创建运行器类型为命令行的生成步骤。将命令可执行文件设置为
C:Program FilesMicrosoft Visual Studio 10.0VSTSDBDeployVSDBCMD.exe
。将命令参数设置为/a:Deploy /dd:+ /manifest:%system.teamcity.build.checkoutDir%<PROJECT PATH>sqldebug<PROJECT NAME>.deploymanifest
。(有关 VSDBCMD.exe 参数,请参阅此处)。
Data Tools 或 Visual Studio 2012/2013 提供的 SQL Server 数据库项目:
- 创建运行器类型 Visual Studio 的生成步骤来生成解决方案。
- 创建运行器类型为命令行的生成步骤。将命令可执行文件设置为
C:Program FilesMicrosoft Visual Studio 10.0Microsoft SQL Server Data Toolssqlpackage.exe
。有关 sqlpackage.exe 参数,请参阅此处。下面是部署设置存储在 XML 文件(通过"发布"选项创建)中的示例:/Action:Publish /SourceFile:%system.teamcity.build.checkoutDir%<PROJECT PATH>binDebug<PROJECT NAME>.dacpac /Profile:%system.teamcity.build.checkoutDir%<PATH TO PROJECT>PublishSettings.xml
。
由于我的问题今天被投票赞成,我正在重新审视我找到的答案。
我做了以下工作:
- 在我的构建中创建了一个部署步骤
- 将其指向我的VS数据库项目(.dbroj文件)
- enetered command line params如下:/t:Deploy/p:TargetDatabase=MyDBName/P:Configuration=%env.配置%
编辑 16/11/12:另一个赞成票,所以再次重温。自从我发布此内容以来,事情变得更加清晰。我最初在我的开发PC上运行TeamCity。
当我把它移到服务器上时,我可以让数据库部署工作的唯一方法是在服务器上安装 Visual Studio,这很痛苦。