【问题标题】:Basic Azure DevOps flow for ASP .Net适用于 ASP .Net 的基本 Azure DevOps 流程
【发布时间】:2019-06-22 19:51:33
【问题描述】:

我有一种在构建服务器(通常是 Jenkins)上构建和部署我的 asp .net 应用程序的标准工作方式。我有一个自定义构建脚本和发布配置文件,用于构建我的解决方案、复制一些文件并发布 Web 项目,所有这些都只需调用一次 MSBuild。

我正在尝试在 Azure DevOps 中重新创建它。我的第一个障碍似乎是构建和“发布”(或 DevOps 术语中的“发布”)是独立的步骤。但似乎我不需要“发布”?

所以

  1. 如何控制构建的“工件”文件夹中的内容?是通过 Azure 吗?我可以使用 .MSBuild 文件吗?还有
  2. 我什至需要“发布”的概念,还是发布步骤只是将所有工件复制到目标(在本例中为 VM)?我可以控制部署的内容吗?

我很难找到某种涵盖以这种方式部署的 asp .net 项目的基本教程。

【问题讨论】:

    标签: asp.net azure-devops azure-pipelines


    【解决方案1】:
    1. 如何控制构建的“工件”文件夹中的内容?是通过 Azure 吗?我可以使用 .MSBuild 文件吗?

    是的,我们可以使用 MSBuild Arguments 参数 /p:PackageLocation=$(build.artifactstagingdirectory) 来控制“artifacts”文件夹中的内容。

    当我们使用任务 Visual Studio build 来构建项目时,我们可以将 MSBuild Arguments 参数编辑为:/p:DeployOnBuild=true /p:PublishProfile=Test /p:PackageLocation=$(build.artifactstagingdirectory)

    然后我们可以使用 Publish Build Artifacts task 将构建工件发布到 Azure Pipelines、TFS 或文件共享。

    1. 我什至需要“发布”的概念,还是发布步骤只是将所有工件复制到目标(在本例中为 VM)?我可以控制部署的内容吗?

    是的,您可以简单地理解发布步骤,只需将工件复制到目标即可。如果您想控制部署的内容,可以在将 copy task 与内容一起使用时过滤工件。

    查看文章Deploying Web Applications Using Team Build and Release Management了解详情。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      如果您有可用的现有脚本,请使用那些 :)。新的 YAML 构建正在慢慢地从具有大量逻辑的功能齐全的 UI 任务转向执行所需操作的更简单的脚本。

      虽然将构建与发布分开是一种常见的做法。这样,您就可以在发布阶段进行额外的检查、审查和批准。

      在你的情况下,这意味着:

      • 构建阶段
        • 使用 MsBuild 以文件夹或 zip 文件的形式构建和创建发布包。
        • 使用 Publish Pipeline Artifact 任务存储此文件夹或 zip 文件
      • 发布阶段
        • 使用下载管道工件任务恢复要发布的文件
        • 可选择使用 Infra as Code 工具来准备目标环境。
        • 使用 msdeploy.exe 或其他工具发布包。可以选择生成并传入设置文件以覆盖某些设置。

      通过这种方式,您可以有多个发布阶段来生成测试环境、临时 POC 环境等,只需使用另一组变量和/或设置覆盖文件。

      Azure Pipelines 中有一些特殊任务围绕着这些工具,并提供易于使用的 UI 和一些额外的逻辑。如果您不熟悉命令行工具,这些工具会非常有用。如果您确实了解它们的方法,那么可能没有充分的理由使用这些花哨的任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-13
        • 2020-11-30
        • 1970-01-01
        • 1970-01-01
        • 2019-09-15
        • 2020-10-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多