我们正在使用 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}
当我们 checkin 并运行持续集成时,它会将所有 4 个网站发布到同一目录。我们如何指定哪个项目属于哪个 IIS 应用程序?
我们已尝试按照 How to tell TFS to deploy multiple webapps containing in one solution? 上的建议将设置移动到 csproj 中。进行更改后, checkin 工作但未发布。
最佳答案
它正在部署到同一个站点,因为您正在传递 DeployIisAppPath
在命令行中。
您可以在每个具有相同名称的 Web 应用程序中创建发布配置文件(例如 Stage.pubxml
),每个包含不同的 DeployIisAppPath
值(value)。部署时可以指定/p:PublishProfile=Stage
它将为每个特定项目使用该配置文件中的设置。
如果你想指定像 SkipExtraFilesOnServer
这样的属性和 MsDeployServiceUrl
从命令行,只需将它们从您的发布配置文件中删除。
关于msbuild - 在解决方案中使用多个网站项目进行持续部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814644/