VSTS 部署到多个应用程序服务
VSTS deployment to multiple app services
我使用带有 TFS 存储库的 VSTS 来托管我的代码。该解决方案是 Asp.Net 核心解决方案,包含几个项目。我在解决方案中有两个项目用于不同的应用程序服务 - 一个将部署到 Web 应用程序,另一个将部署到 API 应用程序。
问题是如何配置部署这些工件的单个构建定义/发布定义。目前,我有两个定义 - 每个定义一个,我想有一个。我该如何配置它?
- 您可以为这些项目创建具有相同名称的发布配置文件(右键单击项目=>发布)(包位置的相对路径,例如
<DesktopBuildPackageLocation>..\..\a\WebApp</DesktopBuildPackageLocation>
)。通过这种方式,Web 应用程序发布的结果将在 不同的文件夹 中。
- 指定 Visual Studio 构建任务的 MSBuild 参数将如下所示:
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:PublishProfile="[profile name]"
.
- 添加 Publish Build Artifacts 以发布这些 Web 应用程序发布的结果(例如发布路径:
$(build.artifactstagingdirectory)
)
- 创建新的发布定义
- 添加两个部署应用任务(例如 Azure 应用服务部署)
- 指定要部署的相应包
更新:
使用多个Publish Tasks来发布一个包也可以(不需要publish profile)。
- 从 "ASP.NET Core (.NET Framework)" 构建模板开始。默认情况下,为解决方案中的所有函数应用程序创建一个包。
修改生成解决方案任务 msbuild 参数,以便为每个 Function App 项目创建一个包
发件人:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:PackageAsSingleFile=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"
至
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)" /p:DeployIisAppPath="Default Web Site"
运行 构建并查看发布工件,您应该在包中看到多个 zip 文件,每个函数应用一个
现在,对于您要部署的每个 Function App,将一个 'Deploy Azure App Service' 任务添加到您的 Release 定义中
将 'Deploy Azure App Service' 任务、包或文件夹更新为:
$(System.ArtifactsDirectory)/**/Your.Project.FunctionApp.zip
我使用带有 TFS 存储库的 VSTS 来托管我的代码。该解决方案是 Asp.Net 核心解决方案,包含几个项目。我在解决方案中有两个项目用于不同的应用程序服务 - 一个将部署到 Web 应用程序,另一个将部署到 API 应用程序。
问题是如何配置部署这些工件的单个构建定义/发布定义。目前,我有两个定义 - 每个定义一个,我想有一个。我该如何配置它?
- 您可以为这些项目创建具有相同名称的发布配置文件(右键单击项目=>发布)(包位置的相对路径,例如
<DesktopBuildPackageLocation>..\..\a\WebApp</DesktopBuildPackageLocation>
)。通过这种方式,Web 应用程序发布的结果将在 不同的文件夹 中。 - 指定 Visual Studio 构建任务的 MSBuild 参数将如下所示:
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:PublishProfile="[profile name]"
. - 添加 Publish Build Artifacts 以发布这些 Web 应用程序发布的结果(例如发布路径:
$(build.artifactstagingdirectory)
) - 创建新的发布定义
- 添加两个部署应用任务(例如 Azure 应用服务部署)
- 指定要部署的相应包
更新:
使用多个Publish Tasks来发布一个包也可以(不需要publish profile)。
- 从 "ASP.NET Core (.NET Framework)" 构建模板开始。默认情况下,为解决方案中的所有函数应用程序创建一个包。
修改生成解决方案任务 msbuild 参数,以便为每个 Function App 项目创建一个包
发件人:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:PackageAsSingleFile=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"
至
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)" /p:DeployIisAppPath="Default Web Site"
运行 构建并查看发布工件,您应该在包中看到多个 zip 文件,每个函数应用一个
现在,对于您要部署的每个 Function App,将一个 'Deploy Azure App Service' 任务添加到您的 Release 定义中
将 'Deploy Azure App Service' 任务、包或文件夹更新为:
$(System.ArtifactsDirectory)/**/Your.Project.FunctionApp.zip