2011-09-05 52 views
0

我想通过添加使用数据库项目部署数据库的步骤来自定义默认的TFS构建过程。我遵循[这些步骤] [1],并且当数据库名称是InvokeProcess下该步骤的deploymanifest文件上的硬编码时,DB部署工作。如何在deploymanifest上使数据库名称成为参数?

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

我的问题是,我怎样才能改变DatabaseProjectName一个变量,并且已将其动态分配所以这BuildProcessTemplate可以通过其他数据库使用建立或如果该项目内TFS支?我尝试使用SQLCmdVars中使用的$(DatabaseName)变量和项目属性,但似乎没有解决。

回答

2

首先,您可以通过修改定义模板以将DatabaseProjectName(和“TargetDatabaseName”,如果db的名称将与参数不同)作为参数,使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 
+0

太棒了!非常感谢Mike!这正是我所期待的!这是我可以检查我的TFS待办事项列表中的一个项目。1下降一百万! :) – IPon6MT