我在构建管道中生成了一些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命令。
答案 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脚本。在部署文件之前,您需要确保正确配置了文件,这就是发布管道的目的。
我希望这会有所帮助,
乔恩