gpt4 book ai didi

msbuild - 如何在 Tfs Build 中参数化 DeployIisAppPath Msbuild 参数

转载 作者:行者123 更新时间:2023-12-05 00:25:26 28 4
gpt4 key购买 nike

我正在使用 Tfs 2012 来构建/部署我们的 Asp.Net Web 应用程序。我们有一个构建定义,可以构建 5 个解决方案(.sln 文件)。这就是我们的 MsBuild 参数的样子:

/p:DeployOnBuild=True /p:AllowUntrustedCertificate=True /p:DeployIisAppPath="Test"         /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True /p:MSDeployPublishMethod=WMSVC /p:MSDeployServiceUrl="https://{server}:8172/msdeploy.axd" /p:UserName="{user}" /p:Password="{password}"

我需要使用此构建定义通过 Web Deploy 部署所有 5 个站点。当然,它们共享除 DeployIisAppPath 之外的所有参数。它适用于 1 个解决方案,但对于 1 个以上,我需要为每个解决方案输入不同的 DeployIisAppPath,以便每个解决方案都部署到 IIS 中的正确站点。

我已经检查了这些问题和其他文档,但还没有运气:

Running a build against multiple projects with different build arguments

Continuous deployment with multiple website projects in solution

How to pass TFS variable to a MSBuild task of the project

TFS2010 Build Definition to Deploy to multiple servers?

我也尝试将参数作为属性传递给每个 sln 的 {siteName}.Web.csproj 作为属性。

任何帮助将不胜感激。

最佳答案

一种可能的方法是提出您自己的参数集。让我们说,我们称他们为 DeployIisAppPath_One , DeployIisAppPath_Two等。只要它们是独一无二的,任何名称都适合您。

然后,在需要部署的每个项目文件中进行小的编辑。在第一个 <PropertyGroup>部分,添加以下行。例如。在第一个项目中,添加

<DeployIisAppPath Condition="'$(DeployIisAppPath_One)' != ''">$(DeployIisAppPath_One)</DeployIisAppPath>

在第二个项目中,同样:
<DeployIisAppPath Condition="'$(DeployIisAppPath_Two)' != ''">$(DeployIisAppPath_Two)</DeployIisAppPath>

对要部署的所有项目重复此操作。现在,您的新命令行将如下所示:
msbuild ... /p:DeployIisAppPath_One="MySite/one" /p:DeployIisAppPath_Two="MySite/two" ...

关于msbuild - 如何在 Tfs Build 中参数化 DeployIisAppPath Msbuild 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24321722/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com