Ola*_*laf 16 iis msbuild visual-studio-2010 tfs2010 webdeploy
我们有一个解决方案,其中包含一个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呢?还有其他想法吗?
小智 13
正如Vishal在您自己链接的博客文章中所描述的那样,所有MSBuild参数都可以在csproj中移动.这意味着每个项目都可以拥有自己的设置.
我有一个包含6个项目,4个类库和2个Web(WCF和MVC应用程序)的解决方案.我遵循Vishal博客的指令,只是将我的所有MSBuild参数移动到每个csproj文件中..即
<PropertyGroup>
<DeployOnBuild>True</DeployOnBuild>
<DeployTarget>MsDeployPublish</DeployTarget>
<CreatePackageOnPublish>True</CreatePackageOnPublish>
<MSDeployPublishMethod>InProc</MSDeployPublishMethod>
<MSDeployServiceUrl>localhost</MSDeployServiceUrl>
<DeployIisAppPath>Dev.Auzzy\Web</DeployIisAppPath>
<UserName>Username</UserName>
<Password>Password</Password>
...
Run Code Online (Sandbox Code Playgroud)
确保然后从构建定义中删除参数.
然后,TFS按预期部署..将每个项目放入指定为每个IIS站点的主目录的正确文件夹中.
另外值得注意的是,您不能像上面那样在PropertyGroup中包含DeployIisAppPath,而是使用项目的属性页面为每个构建配置指定此项.(右键单击每个项目>"属性">"包/发布Web").
这个问题我花了2天时间.我找到了一个适合我的简单解决方案.
我使用名为DeployMvc1,DeployMvc2的解决方案配置管理器创建了另外2个配置.在DeployMvc1中取消选中MVC2项目的构建,并在DeployMvc2中取消选中MVC1项目的构建.
接下来,我创建了2个构建定义DeployMvc1Build和DeployMvc2Build.第一个用于监听MVC1项目
/p:DeployObBuild=true
/p:Deploytarget=MsDeployPublish
/p:Configuration=DeployMvc1
/p:Platform="Any CPU"
/p:MSDeployPublishMethod=WMSvc
/p:MsDeployServiceUrl="https://{server1}:8172/MsDeploy.axd"
/p:DeployIisAppPath="mvc1"
/p:AllowUntrustedCertificate=True
/p:Username="{username}"
/p:Password={password}
Run Code Online (Sandbox Code Playgroud)
第二个用MV监听MVC2项目
/p:DeployObBuild=true
/p:Deploytarget=MsDeployPublish
/p:Configuration=DeployMvc2
/p:Platform="Any CPU"
/p:MSDeployPublishMethod=WMSvc
/p:MsDeployServiceUrl="https://{server2}:8172/MsDeploy.axd"
/p:DeployIisAppPath="mvc2"
/p:AllowUntrustedCertificate=True
/p:Username="{username}"
/p:Password={password}
Run Code Online (Sandbox Code Playgroud)
然后我的问题解决了.
| 归档时间: |
|
| 查看次数: |
12016 次 |
| 最近记录: |