解决方案中的多个网站项目的连续部署

7

我们正在使用VS2012,其中包含4个网站项目的解决方案。我们已经将以下MSBuild参数添加到我们的持续集成MSBuild参数中:

/p:DeployOnBuild=True
/P:Configuration=Testing
/p:DeployTarget=MsDeployPublish
/p:MSDeployPublishMethod=WMSvc
/p:CreatePackageOnPublish=False
/p:DeployIisAppPath="{test}"
/p:SkipExtraFilesOnServer=true
/p:MsDeployServiceUrl={test}/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/p:username={username}
/p:password={password}

当我们进行签入并进行持续集成运行时,它会将所有4个网站发布到同一个目录中。如何指定哪个项目属于哪个IIS应用程序?
我们已经尝试将设置移动到csproj中,就像如何告诉TFS部署包含在一个解决方案中的多个Web应用程序上建议的那样。在进行更改后,签入工作了,但未进行发布。

将一个解决方案拆分成四个,每个网站一个,这样不是更好吗? - James Woolfenden
1个回答

16

它是部署到同一网站,因为您在命令行中传递了DeployIisAppPath

您可以在每个 Web 应用程序中创建具有相同名称的发布配置文件(例如 Stage.pubxml),每个配置文件都包含不同的 DeployIisAppPath 值。当您进行部署时,可以指定 /p:PublishProfile=Stage,它将使用该配置文件的设置对于每个特定项目

如果您想从命令行指定 SkipExtraFilesOnServerMsDeployServiceUrl 等属性,请只需从您的发布配置文件中删除它们即可。


谢谢,这对我帮助很大。 - Michael
@Michael @Richard Szalay,是否存在某种情况,只有第一个编译的项目才会使用发布配置文件?http://stackoverflow.com/questions/38306581/msbuild-publish-profile-not-being-passed-to-second-web-project-for-solution-with - Rohith Nair

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接