0

我正在尝试通过添加使用数据库项目部署数据库的步骤来自定义默认 TFS 构建过程。我按照 [这些步骤][1] 操作,当数据库名称是 InvokeProcess 下此步骤的 deploymanifest 文件上的硬代码时,数据库部署工作。

C。将Arguments属性设置为“/a:Deploy /dd+ /dsp:Sql /manifest:DatabaseProjectName.deploymanifest”。您必须将 DatabaseProjectName 替换为您要部署的数据库项目的名称。

我的问题是,如何将 DatabaseProjectName 更改为变量并动态分配它,以便其他数据库构建可以使用此 BuildProcessTemplate,或者如果项目在 TFS 中分支?我尝试将 SQLCmdVars 中使用的 $(DatabaseName) 变量与项目属性一起使用,但似乎无法解决。

4

1 回答 1

2

首先,您可以通过修改定义模板以添加“DatabaseProjectName”(如果数据库的名称将不同,则添加“TargetDatabaseName”)作为参数,使 DatabaseProjectName 成为构建定义中的变量。您可以单击 Metadata 属性以显示属性,以便您可以在每个构建定义中将其设置为不同的名称。请参阅这篇关于添加参数的帖子。 http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx

然后,将 InvokeProcess 活动中的参数用作字符串中的变量,如下所示。您可以通过包含 /p:TargetDatabase 选项来覆盖清单中的数据库名称。

/a:deploy /dd+ /dsp:sql /manifest:" & DatabaseProjectName & ".deploymanifest /p:TargetDatabase=" & TargetDatabaseName
于 2011-09-09T02:45:14.927 回答