VSTS:部署到基于 Azure 的 VM

VSTS: Deploying to Azure based VM

我正在使用 VSTS 设置测试管道,现在我的构建可以使用 Azure VM 作为构建代理,我还想部署到该机器。 我已经尝试使用 Windows 文件复制和 IIS 部署任务,但是 ,所以想知道最好的任务是让机器上的 build/release 代理复制工件到基于 Azure 的 VM 并在本地部署到其 IIS 安装?

我强烈建议您重新考虑不将您的应用程序部署到您的构建代理。这将使查找由于缺少 DLL 或文件而导致的问题变得极其困难,因为构建服务器拥有一切。我建议创建另一个 VM 来部署或利用 Azure 的 PaaS 来部署 Web 应用程序。

综上所述,因为您在同一台 VM 上本地工作,您可以简单地利用 Copy Files 任务将文件移动到它们需要的位置。要"deploy"应用程序,只需将网站的输出复制到 IIS 目录即可。

另一种选择是创建一个 PowerShell 脚本,用于设置、配置应用程序并将其部署到本地计算机。在这种情况下,您可以简单地利用 PowerShell 任务。

源代码(构建定义中的获取源代码部分)将在构建过程中自动下载到构建代理,因此您无需通过以下方式将文件复制到该机器Windows文件复制任务,简单的工作流程是:

  1. 添加 NuGet 任务以恢复包
  2. 添加 Visual Studio 生成任务(MSBuild 参数:/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageLocation="$(build.artifactstagingdirectory)\web.zip" /P:PackageTempRootDir=""
  3. 添加 WinRM-IIS Web 应用部署任务:(Web 部署包:$(Build.ArtifactStagingDirectory)\web.zip

正如 virusstorm 所说,您可以通过复制文件任务将文件复制到该机器上的其他路径。

另一方面,如果您使用的是发布版,默认情况下会将工件下载到目标机器,如果部署机器与构建代理机器不同,您可以考虑Deployment groups