art*_*dev 4 msbuild tfsbuild webdeploy
我正在使用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}"
Run Code Online (Sandbox Code Playgroud)
我需要使用此构建定义使用Web Deploy部署所有5个站点.它们共享除DeployIisAppPath之外的所有参数.它适用于1个解决方案,但是对于1个以上的解决方案,我需要为每个解决方案输入不同的DeployIisAppPath,以便每个解决方案都部署到IIS中的正确站点.
我已经检查了这些问题和其他文档,但还没有运气:
我已经尝试将参数作为属性传递给每个sln的{siteName} .Web.csproj作为属性.
任何帮助将不胜感激.
其中一种可能的方法是提出自己的一组参数.让我们说,我们叫他们DeployIisAppPath_One
,DeployIisAppPath_Two
等无论名称为你工作,只要它们是唯一的.
然后,在需要部署的每个项目文件中进行小编辑.在第一<PropertyGroup>
部分中,添加以下行.例如,在第一个项目中,添加
<DeployIisAppPath Condition="'$(DeployIisAppPath_One)' != ''">$(DeployIisAppPath_One)</DeployIisAppPath>
Run Code Online (Sandbox Code Playgroud)
在第二个项目中,simalarly:
<DeployIisAppPath Condition="'$(DeployIisAppPath_Two)' != ''">$(DeployIisAppPath_Two)</DeployIisAppPath>
Run Code Online (Sandbox Code Playgroud)
对要部署的所有项目重复此操作.现在,您的新命令行将如下所示:
msbuild ... /p:DeployIisAppPath_One="MySite/one" /p:DeployIisAppPath_Two="MySite/two" ...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2833 次 |
最近记录: |