【问题标题】:VSTS: Deploying to Azure based VMVSTS:部署到基于 Azure 的 VM
【发布时间】:2017-11-28 09:26:58
【问题描述】:
【问题讨论】:
标签:
azure
azure-devops
azure-pipelines-release-pipeline
【解决方案1】:
我建议您强烈重新考虑不要将您的应用程序部署到您的构建代理。这将使查找由于缺少 DLL 或文件而导致的问题变得极其困难,因为构建服务器拥有一切。我建议创建另一个 VM 以部署到或利用 Azure 的 PaaS 进行 Web 应用程序。
综上所述,由于您在同一 VM 上本地工作,因此您可以简单地利用 Copy Files 任务将文件移动到它们需要的位置。要“部署”应用程序,您只需将网站的输出复制到 IIS 目录即可。
另一种选择是创建一个 PowerShell 脚本,用于设置、配置应用程序并将其部署到本地计算机。在这种情况下,您可以简单地利用 PowerShell 任务。
【解决方案2】:
源代码(构建定义中的获取源代码部分)将在构建过程中自动下载到构建代理,因此您无需通过 Windows 文件复制任务将文件复制到该机器,简单的工作流程是:
- 添加 NuGet 任务以恢复包
- 添加 Visual Studio 构建任务(MSBuild 参数:
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageLocation="$(build.artifactstagingdirectory)\\web.zip" /P:PackageTempRootDir="")
- 添加 WinRM-IIS Web 应用部署任务:(Web 部署包:
$(Build.ArtifactStagingDirectory)\web.zip)
正如virusstorm所说,您可以通过复制文件任务将文件复制到该机器上的其他路径。
另一方面,默认情况下,如果您使用的是发布,则工件将被下载到目标机器,如果部署机器与构建代理机器不同,您可以考虑Deployment groups。