【问题标题】:Azure custom deployment script - remove additional files at desitinationAzure 自定义部署脚本 - 删除目标位置的其他文件
【发布时间】:2015-08-18 23:47:10
【问题描述】:

当使用 custom deployment script 进行 Github 到 Azure 的持续部署时,您如何获取脚本以在目标位置删除其他文件,这与通过 Visual Studio 发布时的方式相同(VS 屏幕截图如下)。

如果有帮助,更具体地说,我的脚本基于本教程 - https://github.com/aranasoft/todo-azurewebsites/wiki/Deploying-to-Azure

我希望它可以做到,并且只需要添加几行代码到脚本中即可智能删除附加文件,或者可能是 KuduSync cmd 的配置选项。

【问题讨论】:

  • 您是否尝试将rmdir 命令添加到您的部署脚本中?在我看来,您已经回答了自己的问题。 :)
  • 我没试过。澄清一下 - 理想情况下,我不想删除整个文件夹,因为我预计这会导致部署花费更长的时间,并使网站关闭。我认为 VS 选项智能地只删除附加文件。我将编辑问题以消除混淆。

标签: azure kudu


【解决方案1】:

这样的事情可能会奏效。

把这个放到文件f:

diff -ReferenceObject  (gci -Recurse $Env:DEPLOYMENT_SOURCE | % { $_.FullName.TrimStart($Env:DEPLOYMENT_SOURCE) }) `
     -DifferenceObject (gci -Recurse $Env:DEPLOYMENT_TARGET | % { $_.FullName.TrimStart($Env:DEPLOYMENT_TARGET) }) |
  ? SideIndicator -eq "=>" |
  % { Join-Path -Path $Env:DEPLOYMENT_TARGET $_.InputObject } |
  % { write "Removing $_"; rm $_ }
}

并从您的 Kudu 部署脚本中调用它,例如powershell.exe -File f

如果您更喜欢 bash,它也可以在 Web 应用程序主机上使用,您可以通过更改 .deployment 中的 config-部分来告诉 Kudu 执行 bash 脚本,例如到command = bash deployment.sh 行中的某事。

【讨论】:

  • 干杯。看起来它应该可以工作,但我收到一个语法错误:Missing closing '}' in statement block or type definition。不过,所有} 看起来都不错。你有提示吗?
  • 如果它与这个块有关,我猜你错过了最后一个花括号。如果没有,我建议使用 PowerShell ISE 或其他带有语法突出显示的编辑器。
  • PowerShell ISE 中没有错误。但是 deploy.cmd 中的语法错误仍然存​​在。从 cmd 中调用 powershell 可以吗?
  • 是的。但是我忘记了批处理文件是逐行执行的。更新了答案。
  • 非常感谢!所有这些努力只是为了在 Azure 上运行 gulp。我现在在remove-item 命令上遇到了可怕的“指定的路径、文件名或两者都太长”错误。我想这是一个不同的障碍。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多