我们正在使用VS2012并拥有一个包含4个网站项目的解决方案。我们在Continuous Integration 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应用程序?
我们已经尝试按照How to tell TFS to deploy multiple webapps containing in one solution?的建议将设置移动到csproj中。在进行更改后,签入工作但没有发布。
答案 0 :(得分:16)
它正在部署到同一站点,因为您在命令行中传递了DeployIisAppPath
。
您可以在每个Web应用程序中使用相同名称(例如Stage.pubxml
)创建发布配置文件,每个配置文件包含不同的DeployIisAppPath
值。部署时,您可以指定/p:PublishProfile=Stage
,它将使用该配置文件中的设置为每个特定项目。
如果要从命令行指定SkipExtraFilesOnServer
和MsDeployServiceUrl
等属性,只需将其从发布配置文件中删除即可。