【发布时间】:2014-08-10 21:13:10
【问题描述】:
我正在使用 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 作为属性。
我们将不胜感激。
【问题讨论】:
-
以防万一有人像我一样遇到这个问题,并且在 VS2010 而不是 2012 中工作。我的解决方案是停止覆盖 msbuild 参数,只需在“打包/发布 web”选项卡中配置它Web 项目属性。在“Web 部署包设置”下,有一个名为“要在目标服务器上使用的 IIS 网站/应用程序名称”的设置。我想知道在 2012 年删除这些设置的理由是什么。
标签: msbuild tfsbuild webdeploy