如何使用Azure DevOps在Nure应用服务上部署Nupkg文件

时间:2019-09-15 12:55:51

标签: azure azure-devops nuget azure-web-app-service

我在构建管道中生成了一些nupkg文件,打算将其推送到Azure应用服务。我使用的Azure App Service Deploy Task仅支持zip文件。

我需要一种机制来在azure应用服务上推送nupkg文件并将其解压缩。我不确定是否可以使用Post Deployment Action部分。

更新以解释我的用例:

在我的构建管道中,有一些dll和配置文件(yaml,json)捆绑为nupkg文件。我想使用Azure App Service Deploy Task将这些文件推送到应用程序服务。将这些文件推送到应用程序服务后,我想将这些文件解压缩以提取dll和yaml文件,并执行一些任务,例如移动它们并运行一些powershell命令。

3 个答案:

答案 0 :(得分:0)

我不确定您要做什么,但是通常不使用nuget包文件来部署Azure应用程序服务。

假设您使用的是.NET core,请查看以下文档: https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops

尤其是,请查看“将工件发布到Azure管道”部分,因为这将生成将在发布管道中使用的zip文件。

答案 1 :(得分:0)

通常,您需要在将所有文件推送到Azure App Service之前进行所有文件操作。通常,DevOps不支持在服务器本身上更改文件。

您可以选择通过Kudu API和PowerShell自动执行这些文件更改,然后通过发布过程运行脚本。这是我发现的文章: https://blog.kloud.com.au/2016/08/30/interacting-with-azure-web-apps-virtual-file-system-using-powershell-and-the-kudu-api/

我在Angular应用程序中有一个类似的场景,需要我操纵构建输出。这些操作包括运行一个脚本,该脚本更改JSON文件中的环境变量,但是该脚本在发布过程中之前期间运行,以将文件部署到Azure App Service。这可能是您的选择。

另一个选项可能是使用Docker映像。一年前,我遇到了一个场景,其中我开发了一个需要Chromium的解决方案。它在我的机器上运行良好,但是当我进行部署时,我无法在App Service上安装Chromium。可以理解,在涉及环境依赖性方面,应用程序服务受到限制。

我的解决方法是使用Docker映像。您可以在Docker映像中执行几乎所有您想做的事情。拥有映像后,您的应用程序服务即可运行Docker映像。这是一个文档,可以帮助您入门: https://docs.microsoft.com/en-us/learn/modules/deploy-run-container-app-service/

希望这会有所帮助, @IkeMtz

答案 2 :(得分:0)

请参阅以下步骤,以在发布过程中使用Nuget并运行powershell脚本。在部署文件之前,您需要确保正确配置了文件,这就是发布管道的目的。

  1. 创建新版本
  2. 创建一个空作业
  3. 添加下载包任务-使用Feed和包进行配置( 此下载并解压缩)
  4. 添加Powershell任务-配置并运行powerhsell
  5. 然后您可以在此处运行powershell脚本。
  6. 添加存档文件任务以压缩要部署的文件
  7. 添加Deploy Azure App Service并指向该zip文件

我希望这会有所帮助,

乔恩