6

我们正在使用VS2012,并有一个包含4个网站项目的解决方案。我们已经增加了以下的MSBuild参数我们的持续集成的MSBuild参数:在解决方案中连续部署多个网站项目

/P:DeployOnBuild =真/ P:配置=测试/ P:DeployTarget = MsDeployPublish/P:MSDeployPublishMethod = WMSVC/p:CreatePackageOnPublish =假/ p:DeployIisAppPath =“{test}”/ p:SkipExtraFilesOnServer = true /p:MsDeployServiceUrl={test}/MsDeploy.axd/P:AllowUntrustedCertificate = True/p:username = {username}/p:password = {password}

当我们进行检查并持续集成运行时,它会将所有4个网站发布到同一个目录。我们如何指定哪个项目属于哪个IIS应用程序?

我们已经尝试将设置移到csproj中,正如How to tell TFS to deploy multiple webapps containing in one solution?上所建议的一样。进行更改后,检入工作但未发布。

+0

每个网站分成4个SLN会更好吗? – 2013-02-11 15:29:57

回答

15

由于您在命令行中传递了DeployIisAppPath,因此它将部署到同一站点。

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

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

+0

非常感谢您的帮助。 – Michael 2014-01-14 01:43:39

+0

@ Michael @Richard Szalay是否存在一些条件,只有第一个编译的项目采用发布配置文件? http://stackoverflow.com/questions/38306581/msbuild-publish-profile-not-being-passed-to-second-web-project-for-solution-with – 2016-07-12 08:10:13

相关问题