如何在Azure App Service Deploy-Azure Slot上查找已部署网站的目标路径?
我需要删除目标特定文件夹中的现有旧文件,这些文件是在每个发行版中唯一生成的(在构建过程中)。
这必须在预部署期间完成。
我使用了“不删除文件任务”。这是YAML。
在Kudu中,我可以看到我的网站位置是D:\ home \ site \ wwwroot \
我想从路径 D:\ home \ site \ wwwroot \ scripts \ libs>
中删除文件步骤:
任务:DeleteFiles @ 1
displayName:“从$(build.artifactstagingdirectory)中删除文件”
输入:
SourceFolder:'$(build.artifactstagingdirectory)'
内容:“ scripts \ libs **”
答案 0 :(得分:0)
您不必手动删除App Service实例或其部署插槽上的旧文件。使用Azure App Service部署任务时,您可以使用内置选项删除目标上的所有未使用文件(在本例中为App Service实例/部署插槽)。这是方法。
在“ Azure App Service部署”任务上,
这将执行的操作是将目标(应用程序服务)处已存在的文件与将从工件中复制过来的文件进行比较。然后它将删除您要部署的工件中不可用的任何文件。
答案 1 :(得分:0)
在azure App Service Deploy中查找Azure插槽位置
您可能无法删除正确的文件夹。
根据您问题中的第一张图片,我们可以知道您正在从文件夹$(build.artifactstagingdirectory)
中删除文件。
我们知道,文件夹$(build.artifactstagingdirectory)
是代理上任何工件被复制到目的地之前被复制到的本地路径。
检查Build variables了解更多详细信息。
但是,我没有在您的构建定义中找到任何将文件复制到工件的任务。
此外,您说的是删除目标特定文件夹中的现有旧文件,这些文件是在构建过程中唯一生成的。
所以,我大胆地猜测要删除的文件应该位于System.DefaultWorkingDirectory
中,而不是artifacts
中。但是我对此不太确定,因为我无法从路径D:\home\site\wwwroot\scripts\libs>
区分文件夹类型。
因此,要解决此问题,您可以尝试从$(System.DefaultWorkingDirectory)
删除文件。
或者您可以使用Inline Powershell任务得出$(build.artifactstagingdirectory)
的值:
Write-Output '$(Build.ArtifactStagingDirectory)'
然后检查该值是否与您要删除的文件夹D:\home\site\wwwroot\scripts\libs>
的路径匹配。
希望这会有所帮助。