更新: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 [本地实例名称]" |
创建生成定义
创建生成定义
打开带 团队资源管理器 的 Visual Studio。
打开包含要部署的数据库项目的解决方案。
创建生成定义。有关更多信息,请参见如何:创建生成定义。创建生成定义时,应指定当前要生成的解决方案。如果尚未创建自定义项目配置,请单击默认配置。
接下来将修改生成定义.proj 文件。
修改生成项目文件
若要部署数据库项目,必须用 SqlDeploy 任务重写 AfterDropBuild 目标。
修改生成项目文件
从版本控制中签出生成定义.proj 文件。如果您使用的是 Team Foundation 版本控制,请打开“源代码管理资源管理器”,展开团队项目,然后展开 TeamBuildTypes 文件夹找到生成项目文件。
在所选编辑器中打开生成定义.proj 文件。
在该文件底部的 </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>
保存对生成定义.Proj 所做的更改。
修改数据库项目文件
目标连接和数据库存储在 ProjectName.dbproj.user 文件中,该文件特定于用户,而且通常不签入到版本控制中。但是这些设置对于部署数据库来说是必需的。因此,您必须手动修改 ProjectName.dbproj 文件以指定目标连接和数据库。
修改数据库项目文件
将 ProjectName.dbproj 文件从版本控制系统中签出。
在“文件”菜单上单击“关闭解决方案”。必需执行此步骤,因为您无法在已打开的解决方案中修改项目文件。
在“文件”菜单上,指向“打开”,再单击“文件”。
浏览至包含数据库项目文件 (ProjectName.dbproj) 的文件夹,再双击 ProjectName.dbproj.user。
从 ProjectName.dbproj.user 文件中与要生成的配置对应的一节中复制包含**“目标数据库”和“目标连接字符串”**属性定义的行。这些行应该与下面的内容类似:
<TargetDatabase>MyTargetDatabaseName</TargetDatabase> <TargetConnectionString>Data Source=ServerName\InstanceName;Integrated Security=True;Pooling=False</TargetConnectionString>
说明:
如果未指定目标数据库的名称,则会使用此数据库项目的名称。
将这两项复制到剪贴板。
在“文件”菜单上,指向“打开”,再单击“文件”。
浏览至包含数据库项目文件 (ProjectName.dbproj) 的文件夹,再双击 ProjectName.dbproj。
滚动到您要使用 Team Foundation Build 部署的配置的 PropertyGroup。
将复制到剪贴板的项粘贴到项目文件中。如果 TargetDatabase 和 TargetConnectionString 已经包含空元素,则应覆盖这些项。
在“文件”菜单上,单击“保存 ProjectName.dbproj”。
签入更新后的文件
Team Foundation Build 使用签入到版本控制中的数据库项目版本。使用此版本部署数据库之前,必须签入对生成项目和数据库项目文件所做的更改。
签入更新后的文件
在“文件”菜单上,指向“源代码管理”,再单击“签入挂起的更改”。
按照版本控制系统的说明完成生成项目和数据库项目文件的签入。
部署数据库
您现在已经配置了生成定义,并设置了要在 Team Foundation Build 中使用的数据库项目。接下来可以执行一个测试生成来验证数据库是否已成功部署。
部署数据库
在“团队资源管理器”中,展开“团队项目生成”文件夹,右击已创建的用来部署数据库项目的生成定义,再单击“生成 团队项目名称 排队” TeamProjectName。
将出现“生成”对话框。
确认“生成定义”、“生成代理”和“该生成的放置文件夹”字段中的值均正确,然后单击“队列”。
将显示“生成资源管理器”的“排队”选项卡。有关更多信息,请参见 了解 Team Foundation Build 资源管理器。
请参见
任务
如何:从 Team Foundation Build 中运行数据库单元测试