我们有一个解决方案,其中包含一个webapp项目和一些附带的项目.我们的TFS 2010每晚都在构建此解决方案,并将Web应用程序部署到IIS服务器.它像微风一样奔跑.
在TFS构建定义的Process选项卡中,您可以指定"MSBuild Arguments".这是我们的构建定义中设置的值(全部在一行中):
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl=<service url of IIS>
/p:DeployIisAppPath="<a website>"
/p:UserName=<domain>\<user
/p:Password=<password>
Run Code Online (Sandbox Code Playgroud)
这篇博客文章解释了整个设置:http: //vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html.
到现在为止还挺好.
现在我们已经添加了第二个webapp项目,我们希望每晚都将它部署到同一个IIS中.不幸的是,在这种情况下,设置不适用.TFS只部署一个webapp.
还有其他人有同样的问题:
当解决方案具有多个Web应用程序时,TFS 2010 + MSDeploy
和
Vishal R. Joshi建议为每个webapp项目添加一些属性.现在,发布版本将为每个webapp项目生成webpackage(zip文件),该项目具有以下定义的属性:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DeployOnBuild>True</DeployOnBuild>
<DeployTarget>Package</DeployTarget>
<CreatePackageOnPublish>true</CreatePackageOnPublish>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
好.但是如何让TFS将每个webapp部署到IIS呢?还有其他想法吗?
我正在使用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作为属性.
任何帮助将不胜感激.