VSTS:发布管理将工件部署到本地 IIS

VSTS: Release Management Deploying Artifacts to IIS on Premise

我正在使用 VSTS 发布管理将项目部署到 IIS 网站。我有几个要部署的 Web 应用程序和 Web 服务。所以,我想找出最适合我的情况的任务。

我已经使用 Visual Studio 构建任务为这个项目创建了一个构建定义:

效果很好,但我需要添加一个任务来复制 IIS 网站目录下的工件。

另一种方法是使用 IIS 网络部署作为发布定义中的任务,因此我将构建定义创建为:

但是,它需要一个发布配置文件(构建失败,因为找不到它)。我不需要为应用程序中的每个项目创建发布配置文件,因为这工作量太大。

是否有解决方法或首选方法?

您可以更新构建定义以生成 Web 部署包并将其上传到工件。然后在 Release Management 中,将任务添加到部署包中的 运行 "projectname.deploy.cmd" 以将其部署到您的 IIS 服务器。详情参考这个link:How to: Install a Deployment Package Using the deploy.cmd File Created by Visual Studio.

您还可以在您的 IIS 服务器上启用 FTP Publishing 并在您的发布中添加一个任务以通过 FTP 发布工件。您可能需要此任务: FTP 上传者.

如果您需要更多控制,您还可以使用我的 MSDeploy VSTS 扩展来部署 MSDeploy 程序包

https://marketplace.visualstudio.com/items?itemName=rschiefer.MSDeployAllTheThings

https://dotnetcatch.com/2016/04/20/msdeployallthethings-vststfs-extension-is-public/

我的 Continuous Delivery with TFS / VSTS – Server Configuration and Application Deployment with Release Management 博客 post(参考之前的一些 post)包含使用 [将工件部署到目标节点所需的所有详细信息] =19=] 机器文件复制 任务然后使用 目标机器上的 PowerShell 任务将它们带到正确的位置并进行令牌替换和任何其他需要的事情。

我建议使用 PowerShell DSC,以便在部署之前正确配置 IIS,但这不是必需的。在可能的情况下,对于 Web 应用程序,我倾向于通过创建包含特定文件夹所需的所有 Web 文件的人工制品来保持事情非常简单,然后仅使用普通 xcopy 进行部署。