12

是否可以使用 TeamCity 部署 VS 2010 数据库项目?

我正在构建我的整个解决方案,并将网站部署到我的服务器,这一切都很好。

我要触发的最后一步是部署数据库项目,该项目生成一个 sql 脚本并进行部署。

我选择了“创建部署脚本 (.sql) 并部署到数据库”选项作为部署操作,我的配置目标设置为构建和部署数据库项目,但我不知道如何获取 TeamCity 和MSBuild 来触发它。

4

2 回答 2

16

必须安装 Visual Studio 才能正常工作。

对于原始 SQL Server 2005/2008 数据库项目类型

  1. 创建运行器类型 Visual Studio 的构建步骤来构建解决方案。
  2. 创建运行器类型命令行的构建步骤。将命令可执行文件设置为C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Deploy\VSDBCMD.exe. 将命令参数设置为/a:Deploy /dd:+ /manifest:%system.teamcity.build.checkoutDir%\<PROJECT PATH>\sql\debug\<PROJECT NAME>.deploymanifest。(请参阅此处了解 VSDBCMD.exe 参数)。

对于SQL Server Data ToolsVisual Studio 2012/2013提供的 SQL Server 数据库项目:

  1. 创建运行器类型 Visual Studio 的构建步骤来构建解决方案。
  2. 创建运行器类型命令行的构建步骤。将命令可执行文件设置为C:\Program Files\Microsoft Visual Studio 10.0\Microsoft SQL Server Data Tools\sqlpackage.exe. 有关 sqlpackage.exe 参数,请参见此处。这是一个将部署设置存储在 XML 文件中的示例(通过“发布”选项创建):/Action:Publish /SourceFile:%system.teamcity.build.checkoutDir%\<PROJECT PATH>\bin\Debug\<PROJECT NAME>.dacpac /Profile:%system.teamcity.build.checkoutDir%\<PATH TO PROJECT>\PublishSettings.xml.
于 2012-12-07T04:42:51.230 回答
10

由于我的问题今天得到了投票,我正在重新审视我找到的答案。

我做了以下事情:

  • 在我的构建中创建了一个部署步骤
  • 将它指向我的 VS 数据库项目(.dbroj 文件)
  • 输入的命令行参数如下: /t:Deploy /p:TargetDatabase=MyDBName /P:Configuration=%env.Configuration%

2012 年 16 月 11 日编辑:另一个赞成票,所以再次重访。自从我发布了这个,事情变得更清楚了。我最初在我的开发 PC 上运行 TeamCity。

当我把它移到服务器上时,我可以让数据库部署工作的唯一方法是在服务器上安装 Visual Studio,这很痛苦。

于 2012-09-27T16:04:03.617 回答