如何使数据库名称成为deploymanifest上的参数?

发布于 2024-12-02 16:52:48 字数 457 浏览 0 评论 0原文

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

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

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

I am trying to customize default TFS build process by adding a step where a database is deployed using the database project. I followed [these steps][1] and the DB deployment works when the database name is hard code on the deploymanifest file on this step under InvokeProcess.

c. Set the Arguments property to "/a:Deploy /dd+ /dsp:Sql /manifest:DatabaseProjectName.deploymanifest". You must replace DatabaseProjectName with the name of the database project that you want to deploy.

My question is, how can I change DatabaseProjectName to a variable and have it assigned dynamically so this BuildProcessTemplate can be used by other database builds or if the project is branched within TFS? I tried using the $(DatabaseName) variable used in SQLCmdVars with the project properties, but it does not seem to resolve.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

面如桃花 2024-12-09 16:52:48

首先,您可以通过修改定义模板以添加“DatabaseProjectName”(如果数据库名称不同,则添加“TargetDatabaseName”)作为参数,使 DatabaseProjectName 成为构建定义中的变量。您可以单击“元数据”属性来公开属性,以便您可以在每个构建定义中将其设置为不同的名称。请参阅这篇关于添加参数的文章。
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

First, you can make the DatabaseProjectName a variable in your build definition by modifying the definition template to add the "DatabaseProjectName" (and "TargetDatabaseName" if the name of the db is going to be different) as Arguments. You can click in the Metadata property to expose the properties so you can set it to different names in each build definition. See this post on adding arguments.
http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx

Then, use the arguments in your InvokeProcess activity as variables in the string like below. You can override the database name in the manifest by including the /p:TargetDatabase option.

/a:deploy /dd+ /dsp:sql /manifest:" & DatabaseProjectName & ".deploymanifest /p:TargetDatabase=" & TargetDatabaseName
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文