【问题标题】:Azure DevOps Release Pipeline using Packaged Build and Publish Profile使用打包生成和发布配置文件的 Azure DevOps 发布管道
【发布时间】:2021-03-15 18:09:17
【问题描述】:

我正在尝试在 Azure DevOps 中创建发布管道。我们已经有一个运行良好的构建管道,它能够使用 VSBuild 打包构建并将其作为工件发布。然后在发布管道中,我使用 IIS 部署作业(其中包括 IIS 管理和 IIS 部署任务),它会部署该工件。

问题是我们已经有一个发布配置文件 (.pubxml),它应该负责 IIS 部署所做的几乎所有事情(至少据我所知)。所以对我来说,似乎我有两个选项不需要我重构项目配置本身。

  1. 我可以尝试模拟 IIS 部署作业中的设置以尽可能匹配我们的 .pubxml,并手动应用无法通过任务设置进行的任何更改。显然,这并不理想,因为这需要我们在进行更改时同时进行更新,并且随着时间的推移,管道很可能会崩溃。
  2. 我可以放弃使用 IIS 部署的想法,只使用使用参数 /p:DeployOnBuild=true /p:PublishProfile=Staging 的 VSBuild 任务。这似乎不是最佳做法,因为这意味着我的发布管道没有传递要部署的构建包,它只是在每个阶段创建一个新包。

那么有没有更好的选择可以让我在部署中同时使用我用 VSBuild 创建的包和 .pubxml 配置?如果这不可能,那么我的任何一个选项都是处理我的情况的“正确”方式,还是我只是错过了我可以使用的另一种部署方法?

感谢您提供的任何帮助或见解。如果我能提供更多有用的信息,请告诉我。

【问题讨论】:

  • 嗨@Andrew,进展如何?我的回答中的建议对您有帮助吗?请尝试一下。任何更新,请随时告诉我们。谢谢。

标签: azure-devops msbuild azure-pipelines-release-pipeline azure-devops-pipelines


【解决方案1】:

您可以尝试使用发布设置文件 (*.publishsettings) 进行 IIS 部署。

发布设置文件 (.publishsettings) 不同于在 Visual Studio 中创建的发布配置文件 (.pubxml)。发布设置文件由 IIS 或 Azure App Service 创建,也可以手动创建,然后导入 Visual Studio。

要查看更多详细信息,您可以查看:

【讨论】:

  • 您好,感谢您的建议。不幸的是,经过研究,我认为它不能满足我们的需求。首先,我们真的试图避免在本地更改任何现有配置。理想情况下,变革将完全在酝酿之中。此外,我们的发布配置文件具有相当数量的功能,这些功能在发布设置中似乎不可用,除非进行重大修改。在做了更多研究之后,似乎选项 #2 可能是我们最好的选择,但是一旦我真正完成了所有事情,我会更新这个线程。
  • 嗨@Andrew,看起来,您可以导入先前配置的任何发布配置文件以进行部署。以下文章可能对您有所帮助:Visual Studio publish profiles (.pubxml) for ASP.NET Core app deploymentPublish an ASP.NET Core app to IIS
  • 谢谢,我去看看。
  • 嗨@Andrew,进展如何?有任何更新,请随时告诉我们。
  • 这些文章绝对有助于在管道上设置发布配置文件。不幸的是,我在部署过程中遇到了一个不相关的代理问题,这减慢了我的进度。一旦我得到更稳定的解决方案,我会确保更新线程。
【解决方案2】:

所以不幸的是,似乎没有一种方法可以实现我想要的一切。当我们构建项目时需要发布配置文件,因此无需更改配置方式,我需要在我想要部署时构建项目。最终我选择了选项#2。我基本上只是复制了测试管道中使用的大部分构建任务,并将它们放在发布管道中,并使用一些修改过的命令在完成后实际部署构建。这一切似乎都很好,但仍然感觉不像是最佳实践。如果我遗漏了什么,请告诉我,我会酌情进行更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-04
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2020-03-31
    相关资源
    最近更新 更多