使用MSBuild和TeamCity部署VS 2010数据库项目

ozz*_*ozz 12 msbuild teamcity database-project visual-studio-2010 visual-studio

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

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

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

我选择了"创建部署脚本(.sql)并部署到数据库"选项作为部署操作,我的配置目标设置为构建和部署数据库项目,但我无法想象如何获取TeamCity和MSBuild触发它.

Kei*_*ith 16

必须安装Visual Studio才能使其正常工作.

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

  1. 创建运行器类型Visual Studio的构建步骤以构建解决方案.
  2. 创建运行器类型命令行的构建步骤.将Command Executable设置为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数据工具Visual Studio 2012/2013提供的SQL Server数据库项目:

  1. 创建运行器类型Visual Studio的构建步骤以构建解决方案.
  2. 创建运行器类型命令行的构建步骤.将Command Executable设置为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.


ozz*_*ozz 10

自从我今天提出问题以来,我正在重新审视我找到的答案.

我做了以下事情:

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

编辑16/11/12:另一个upvote,再次重访.自从我发布以来,事情变得更加清晰.我最初在我的开发PC上运行TeamCity.

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