如何:使用 Team Foundation Build 部署更改

更新:2007 年 11 月

可以使用 MSBuild 或 Team Foundation Build 在 Visual Studio 中生成和部署数据库。如果要在生成实验室环境中生成和部署数据库项目,请使用 Team Foundation Build。若要使用 Team Foundation Build,必须有一台已安装此软件的计算机。有关更多信息,请参见 Team Foundation Build 概述

使用 Team Foundation Build 部署更改的过程如下:

  • 创建生成定义。

  • 手动修改生成项目文件,以重写标准的 AfterDropBuild 目标。

  • 手动修改数据库项目文件,以指定目标数据库和连接。

  • 签入更新后的文件。

  • 使用新的生成定义部署数据库项目。

在使用 Team Foundation Build 部署更改之前,您必须具备以下条件:

  • 有一个带属性集的数据库项目。

  • 将数据库项目签入版本控制中。

说明:

生成数据库项目之前,必须为运行 Team Foundation Build 的计算机上的服务帐户配置设计时验证数据库的实例。若要配置该实例,可以在生成计算机上将 Visual Studio 作为服务帐户运行。另一种方法是使用以下命令行创建必需的注册表项(请根据您的配置将占位符替换为相应的名称):

Runas /user:[DOMAIN\生成服务用户名] "REG ADD HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\DBPro\DialogPage\Microsoft.VisualStudio.TeamSystem.Data.DBProject.Settings.DataConnectionOptionsSettings /v SQL Server 名称 /d [本地实例名称]"

创建生成定义

创建生成定义

  1. 打开带 团队资源管理器 的 Visual Studio。

  2. 打开包含要部署的数据库项目的解决方案。

  3. 创建生成定义。有关更多信息,请参见如何:创建生成定义。创建生成定义时,应指定当前要生成的解决方案。如果尚未创建自定义项目配置,请单击默认配置。

    接下来将修改生成定义.proj 文件。

修改生成项目文件

若要部署数据库项目,必须用 SqlDeploy 任务重写 AfterDropBuild 目标。

修改生成项目文件

  1. 从版本控制中签出生成定义.proj 文件。如果您使用的是 Team Foundation 版本控制,请打开“源代码管理资源管理器”,展开团队项目,然后展开 TeamBuildTypes 文件夹找到生成项目文件。

  2. 在所选编辑器中打开生成定义.proj 文件。

  3. 在该文件底部的 </ItemGroup> 元素与 </Project> 元素之间,添加下面的代码:

    <Target Name="AfterDropBuild">
      <MSBuild Projects="$(SolutionRoot)\SolutionName\ProjectName\ProjectName.dbproj" Properties="Configuration=Default;OutDir=$(SolutionRoot)\..\binaries\Default\" Targets="Deploy" />
    </Target>
    

    将 SolutionName 替换为包含数据库项目的解决方案的名称,将 ProjectName 替换为数据库项目的名称。如果您使用的不是数据库项目的“默认”配置,请将“配置”和“OutDir”中的“默认”均替换为相应项目配置的名称。

    Team Foundation Build 会将文件复制到所需的放置位置(通常是网络共享位置)。如果要从该位置(而不是从生成计算机)部署数据库,请改用下面的代码:

    <Target Name="AfterDropBuild">
      <MSBuild Projects="$(SolutionRoot)\SolutionName\ProjectName\ ProjectName.dbproj" Properties="Configuration=Release;OutDir=$(DropLocation)\$(BuildNumber)\Release\" Targets="Deploy"/>
    </Target>
    
  4. 保存对生成定义.Proj 所做的更改。

修改数据库项目文件

目标连接和数据库存储在 ProjectName.dbproj.user 文件中,该文件特定于用户,而且通常不签入到版本控制中。但是这些设置对于部署数据库来说是必需的。因此,您必须手动修改 ProjectName.dbproj 文件以指定目标连接和数据库。

修改数据库项目文件

  1. 将 ProjectName.dbproj 文件从版本控制系统中签出。

  2. 在“文件”菜单上单击“关闭解决方案”。必需执行此步骤,因为您无法在已打开的解决方案中修改项目文件。

  3. 在“文件”菜单上,指向“打开”,再单击“文件”。

  4. 浏览至包含数据库项目文件 (ProjectName.dbproj) 的文件夹,再双击 ProjectName.dbproj.user。

  5. 从 ProjectName.dbproj.user 文件中与要生成的配置对应的一节中复制包含**“目标数据库”“目标连接字符串”**属性定义的行。这些行应该与下面的内容类似:

    <TargetDatabase>MyTargetDatabaseName</TargetDatabase>
    <TargetConnectionString>Data Source=ServerName\InstanceName;Integrated Security=True;Pooling=False</TargetConnectionString>
    
    说明:

    如果未指定目标数据库的名称,则会使用此数据库项目的名称。

  6. 将这两项复制到剪贴板。

  7. 在“文件”菜单上,指向“打开”,再单击“文件”。

  8. 浏览至包含数据库项目文件 (ProjectName.dbproj) 的文件夹,再双击 ProjectName.dbproj。

  9. 滚动到您要使用 Team Foundation Build 部署的配置的 PropertyGroup。

  10. 将复制到剪贴板的项粘贴到项目文件中。如果 TargetDatabaseTargetConnectionString 已经包含空元素,则应覆盖这些项。

  11. 在“文件”菜单上,单击“保存 ProjectName.dbproj”。

签入更新后的文件

Team Foundation Build 使用签入到版本控制中的数据库项目版本。使用此版本部署数据库之前,必须签入对生成项目和数据库项目文件所做的更改。

签入更新后的文件

  1. 在“文件”菜单上,指向“源代码管理”,再单击“签入挂起的更改”。

  2. 按照版本控制系统的说明完成生成项目和数据库项目文件的签入。

部署数据库

您现在已经配置了生成定义,并设置了要在 Team Foundation Build 中使用的数据库项目。接下来可以执行一个测试生成来验证数据库是否已成功部署。

部署数据库

  1. 在“团队资源管理器”中,展开“团队项目生成”文件夹,右击已创建的用来部署数据库项目的生成定义,再单击“生成 团队项目名称 排队” TeamProjectName。

    将出现“生成”对话框。

  2. 确认“生成定义”、“生成代理”和“该生成的放置文件夹”字段中的值均正确,然后单击“队列”。

    将显示“生成资源管理器”的“排队”选项卡。有关更多信息,请参见 了解 Team Foundation Build 资源管理器

请参见

任务

如何:从 Team Foundation Build 中运行数据库单元测试

概念

Team Foundation Build 概述

数据库生成和部署概述

Database Edition 术语概述

其他资源

如何:为生成和部署配置数据库项目